{"action":"created","comment":{"url":"https://api.github.com/repos/xiph/speexdsp/pulls/comments/74173846","id":74173846,"diff_hunk":"@@ -112,33 +178,105 @@ static inline int32_t inner_product_single(const int16_t *a, const int16_t *b, u\n \t\t  \"\t vqmovn.s64 d0, q0\\n\"\n \t\t  \"\t vqrshrn.s32 d0, q0, #15\\n\"\n \t\t  \"\t vmov.s16 %[ret], d0[0]\\n\"\n-\t\t  : [ret] \"=&r\" (ret), [a] \"+r\" (a), [b] \"+r\" (b),\n+\t\t  : [ret] \"=r\" (ret), [a] \"+r\" (a), [b] \"+r\" (b),\n \t\t    [len] \"+r\" (len), [remainder] \"+r\" (remainder)\n \t\t  :\n \t\t  : \"cc\", \"q0\",\n-\t\t    \"d16\", \"d17\", \"d18\", \"d19\",\n-\t\t    \"d20\", \"d21\", \"d22\", \"d23\");\n+\t\t    \"d16\", \"d17\", \"d18\", \"d19\", \"d20\", \"d21\", \"d22\", \"d23\");\n \n     return ret;\n }\n-#elif defined(FLOATING_POINT)\n+#endif  // !defined(__aarch64__) \n \n+#elif defined(FLOATING_POINT)\n+#if defined(__aarch64__)\n+static inline int32_t saturate_float_to_16bit(float a) {\n+    int32_t ret;\n+    asm (\"fmov s0, %w[a]\\n\"","path":"libspeexdsp/resample_neon.h","position":125,"original_position":125,"commit_id":"7c20961d4688ca1a486557d88fefcfe4f6c11412","original_commit_id":"7c20961d4688ca1a486557d88fefcfe4f6c11412","user":{"login":"fbarchard","id":14915597,"avatar_url":"https://avatars.githubusercontent.com/u/14915597?v=3","gravatar_id":"","url":"https://api.github.com/users/fbarchard","html_url":"https://github.com/fbarchard","followers_url":"https://api.github.com/users/fbarchard/followers","following_url":"https://api.github.com/users/fbarchard/following{/other_user}","gists_url":"https://api.github.com/users/fbarchard/gists{/gist_id}","starred_url":"https://api.github.com/users/fbarchard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbarchard/subscriptions","organizations_url":"https://api.github.com/users/fbarchard/orgs","repos_url":"https://api.github.com/users/fbarchard/repos","events_url":"https://api.github.com/users/fbarchard/events{/privacy}","received_events_url":"https://api.github.com/users/fbarchard/received_events","type":"User","site_admin":false},"body":"On Mon, Aug 8, 2016 at 8:26 PM, Tristan Matthews <notifications@github.com>\nwrote:\n\n> In libspeexdsp/resample_neon.h\n> <https://github.com/xiph/speexdsp/pull/8#discussion_r73993202>:\n>\n> >\n> > +#elif defined(FLOATING_POINT)\n> > +#if defined(__aarch64__)\n> > +static inline int32_t saturate_float_to_16bit(float a) {\n> > +    int32_t ret;\n> > +    asm (\"fmov s0, %w[a]\\n\"\n>\n> I'm getting an assembler error with gcc 4.9 here:\n> Error: operand 2 should be an integer register -- fmov s0,v1\n>\ndoh!  My bad. I've reproduced the error with gcc 4.9.  It was supposed to\nbe:\n\n    asm (\"fmov s0, *%s[a]\\*n\"\n..\n\n> Why not:\n>\n> asm (\"fcvtas s0, %s[a]\\n\"     \"sqxtn h0, s0\\n\"     \"sxtl v0.4s, v0.4h\\n\"     \"fmov %w[ret], s0\\n\"     : [ret] \"=r\" (ret)     : [a] \"w\" (a)     : \"v0\");\n>\n> at the time I had trouble with clang... it said it couldnt allocate a\nregister.  perhaps because the float is in s0, and I used s0.  Reguardless,\nI'm able to build your code with clang 3.8 so should be fine.\nChanging it to use v1 saves a mov\n\n         asm (\"fcvtas s1, %s[a]\\n\"\n         \"sqxtn h1, s1\\n\"\n         \"sxtl v1.4s, v1.4h\\n\"\n         \"fmov %w[ret], s1\\n\"\n         : [ret] \"=r\" (ret)\n         : [a] \"w\" (a)\n         : \"v1\");\n\n\n   0: 5e21c801 fcvtas s1, s0\n   4: 5e614821 sqxtn h1, s1\n   8: 0f10a421 sxtl v1.4s, v1.4h\n   c: 1e260020 fmov w0, s1\n  10: d65f03c0 ret\n\n—\n> You are receiving this because you authored the thread.\n> Reply to this email directly, view it on GitHub\n> <https://github.com/xiph/speexdsp/pull/8/files/7c20961d4688ca1a486557d88fefcfe4f6c11412#r73993202>,\n> or mute the thread\n> <https://github.com/notifications/unsubscribe-auth/AOOYDR-ch7wMFbOcSTADN7F1NWm2nvKeks5qd_ODgaJpZM4JSTPL>\n> .\n>\n","created_at":"2016-08-10T01:38:31Z","updated_at":"2016-08-10T01:38:31Z","html_url":"https://github.com/xiph/speexdsp/pull/8#discussion_r74173846","pull_request_url":"https://api.github.com/repos/xiph/speexdsp/pulls/8","_links":{"self":{"href":"https://api.github.com/repos/xiph/speexdsp/pulls/comments/74173846"},"html":{"href":"https://github.com/xiph/speexdsp/pull/8#discussion_r74173846"},"pull_request":{"href":"https://api.github.com/repos/xiph/speexdsp/pulls/8"}}},"pull_request":{"url":"https://api.github.com/repos/xiph/speexdsp/pulls/8","id":78401903,"html_url":"https://github.com/xiph/speexdsp/pull/8","diff_url":"https://github.com/xiph/speexdsp/pull/8.diff","patch_url":"https://github.com/xiph/speexdsp/pull/8.patch","issue_url":"https://api.github.com/repos/xiph/speexdsp/issues/8","number":8,"state":"open","locked":false,"title":"resample: port resample_neon.h to aarch64","user":{"login":"fbarchard","id":14915597,"avatar_url":"https://avatars.githubusercontent.com/u/14915597?v=3","gravatar_id":"","url":"https://api.github.com/users/fbarchard","html_url":"https://github.com/fbarchard","followers_url":"https://api.github.com/users/fbarchard/followers","following_url":"https://api.github.com/users/fbarchard/following{/other_user}","gists_url":"https://api.github.com/users/fbarchard/gists{/gist_id}","starred_url":"https://api.github.com/users/fbarchard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbarchard/subscriptions","organizations_url":"https://api.github.com/users/fbarchard/orgs","repos_url":"https://api.github.com/users/fbarchard/repos","events_url":"https://api.github.com/users/fbarchard/events{/privacy}","received_events_url":"https://api.github.com/users/fbarchard/received_events","type":"User","site_admin":false},"body":"port optimized inner_product_single and WORD2INT(x) for fixed\r\n    and floating point from 32 bit armv7 NEON to aarch64 NEON.","created_at":"2016-07-21T23:04:13Z","updated_at":"2016-08-10T01:38:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2471f8fc16e6116f4271120ea082a37ef0a9f5c6","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/xiph/speexdsp/pulls/8/commits","review_comments_url":"https://api.github.com/repos/xiph/speexdsp/pulls/8/comments","review_comment_url":"https://api.github.com/repos/xiph/speexdsp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/xiph/speexdsp/issues/8/comments","statuses_url":"https://api.github.com/repos/xiph/speexdsp/statuses/7c20961d4688ca1a486557d88fefcfe4f6c11412","head":{"label":"fbarchard:master","ref":"master","sha":"7c20961d4688ca1a486557d88fefcfe4f6c11412","user":{"login":"fbarchard","id":14915597,"avatar_url":"https://avatars.githubusercontent.com/u/14915597?v=3","gravatar_id":"","url":"https://api.github.com/users/fbarchard","html_url":"https://github.com/fbarchard","followers_url":"https://api.github.com/users/fbarchard/followers","following_url":"https://api.github.com/users/fbarchard/following{/other_user}","gists_url":"https://api.github.com/users/fbarchard/gists{/gist_id}","starred_url":"https://api.github.com/users/fbarchard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbarchard/subscriptions","organizations_url":"https://api.github.com/users/fbarchard/orgs","repos_url":"https://api.github.com/users/fbarchard/repos","events_url":"https://api.github.com/users/fbarchard/events{/privacy}","received_events_url":"https://api.github.com/users/fbarchard/received_events","type":"User","site_admin":false},"repo":{"id":63907237,"name":"speexdsp","full_name":"fbarchard/speexdsp","owner":{"login":"fbarchard","id":14915597,"avatar_url":"https://avatars.githubusercontent.com/u/14915597?v=3","gravatar_id":"","url":"https://api.github.com/users/fbarchard","html_url":"https://github.com/fbarchard","followers_url":"https://api.github.com/users/fbarchard/followers","following_url":"https://api.github.com/users/fbarchard/following{/other_user}","gists_url":"https://api.github.com/users/fbarchard/gists{/gist_id}","starred_url":"https://api.github.com/users/fbarchard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbarchard/subscriptions","organizations_url":"https://api.github.com/users/fbarchard/orgs","repos_url":"https://api.github.com/users/fbarchard/repos","events_url":"https://api.github.com/users/fbarchard/events{/privacy}","received_events_url":"https://api.github.com/users/fbarchard/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/fbarchard/speexdsp","description":"Speex audio processing library","fork":true,"url":"https://api.github.com/repos/fbarchard/speexdsp","forks_url":"https://api.github.com/repos/fbarchard/speexdsp/forks","keys_url":"https://api.github.com/repos/fbarchard/speexdsp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fbarchard/speexdsp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fbarchard/speexdsp/teams","hooks_url":"https://api.github.com/repos/fbarchard/speexdsp/hooks","issue_events_url":"https://api.github.com/repos/fbarchard/speexdsp/issues/events{/number}","events_url":"https://api.github.com/repos/fbarchard/speexdsp/events","assignees_url":"https://api.github.com/repos/fbarchard/speexdsp/assignees{/user}","branches_url":"https://api.github.com/repos/fbarchard/speexdsp/branches{/branch}","tags_url":"https://api.github.com/repos/fbarchard/speexdsp/tags","blobs_url":"https://api.github.com/repos/fbarchard/speexdsp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fbarchard/speexdsp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fbarchard/speexdsp/git/refs{/sha}","trees_url":"https://api.github.com/repos/fbarchard/speexdsp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fbarchard/speexdsp/statuses/{sha}","languages_url":"https://api.github.com/repos/fbarchard/speexdsp/languages","stargazers_url":"https://api.github.com/repos/fbarchard/speexdsp/stargazers","contributors_url":"https://api.github.com/repos/fbarchard/speexdsp/contributors","subscribers_url":"https://api.github.com/repos/fbarchard/speexdsp/subscribers","subscription_url":"https://api.github.com/repos/fbarchard/speexdsp/subscription","commits_url":"https://api.github.com/repos/fbarchard/speexdsp/commits{/sha}","git_commits_url":"https://api.github.com/repos/fbarchard/speexdsp/git/commits{/sha}","comments_url":"https://api.github.com/repos/fbarchard/speexdsp/comments{/number}","issue_comment_url":"https://api.github.com/repos/fbarchard/speexdsp/issues/comments{/number}","contents_url":"https://api.github.com/repos/fbarchard/speexdsp/contents/{+path}","compare_url":"https://api.github.com/repos/fbarchard/speexdsp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fbarchard/speexdsp/merges","archive_url":"https://api.github.com/repos/fbarchard/speexdsp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fbarchard/speexdsp/downloads","issues_url":"https://api.github.com/repos/fbarchard/speexdsp/issues{/number}","pulls_url":"https://api.github.com/repos/fbarchard/speexdsp/pulls{/number}","milestones_url":"https://api.github.com/repos/fbarchard/speexdsp/milestones{/number}","notifications_url":"https://api.github.com/repos/fbarchard/speexdsp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fbarchard/speexdsp/labels{/name}","releases_url":"https://api.github.com/repos/fbarchard/speexdsp/releases{/id}","deployments_url":"https://api.github.com/repos/fbarchard/speexdsp/deployments","created_at":"2016-07-21T22:48:29Z","updated_at":"2016-07-21T22:48:31Z","pushed_at":"2016-07-21T23:02:51Z","git_url":"git://github.com/fbarchard/speexdsp.git","ssh_url":"git@github.com:fbarchard/speexdsp.git","clone_url":"https://github.com/fbarchard/speexdsp.git","svn_url":"https://github.com/fbarchard/speexdsp","homepage":"","size":5840,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"xiph:master","ref":"master","sha":"83b63852e0e4755a8c04a1f9c87dd73b5aa6293f","user":{"login":"xiph","id":8365509,"avatar_url":"https://avatars.githubusercontent.com/u/8365509?v=3","gravatar_id":"","url":"https://api.github.com/users/xiph","html_url":"https://github.com/xiph","followers_url":"https://api.github.com/users/xiph/followers","following_url":"https://api.github.com/users/xiph/following{/other_user}","gists_url":"https://api.github.com/users/xiph/gists{/gist_id}","starred_url":"https://api.github.com/users/xiph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiph/subscriptions","organizations_url":"https://api.github.com/users/xiph/orgs","repos_url":"https://api.github.com/users/xiph/repos","events_url":"https://api.github.com/users/xiph/events{/privacy}","received_events_url":"https://api.github.com/users/xiph/received_events","type":"Organization","site_admin":false},"repo":{"id":27654102,"name":"speexdsp","full_name":"xiph/speexdsp","owner":{"login":"xiph","id":8365509,"avatar_url":"https://avatars.githubusercontent.com/u/8365509?v=3","gravatar_id":"","url":"https://api.github.com/users/xiph","html_url":"https://github.com/xiph","followers_url":"https://api.github.com/users/xiph/followers","following_url":"https://api.github.com/users/xiph/following{/other_user}","gists_url":"https://api.github.com/users/xiph/gists{/gist_id}","starred_url":"https://api.github.com/users/xiph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiph/subscriptions","organizations_url":"https://api.github.com/users/xiph/orgs","repos_url":"https://api.github.com/users/xiph/repos","events_url":"https://api.github.com/users/xiph/events{/privacy}","received_events_url":"https://api.github.com/users/xiph/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/xiph/speexdsp","description":"Speex audio processing library","fork":false,"url":"https://api.github.com/repos/xiph/speexdsp","forks_url":"https://api.github.com/repos/xiph/speexdsp/forks","keys_url":"https://api.github.com/repos/xiph/speexdsp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xiph/speexdsp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xiph/speexdsp/teams","hooks_url":"https://api.github.com/repos/xiph/speexdsp/hooks","issue_events_url":"https://api.github.com/repos/xiph/speexdsp/issues/events{/number}","events_url":"https://api.github.com/repos/xiph/speexdsp/events","assignees_url":"https://api.github.com/repos/xiph/speexdsp/assignees{/user}","branches_url":"https://api.github.com/repos/xiph/speexdsp/branches{/branch}","tags_url":"https://api.github.com/repos/xiph/speexdsp/tags","blobs_url":"https://api.github.com/repos/xiph/speexdsp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xiph/speexdsp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xiph/speexdsp/git/refs{/sha}","trees_url":"https://api.github.com/repos/xiph/speexdsp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xiph/speexdsp/statuses/{sha}","languages_url":"https://api.github.com/repos/xiph/speexdsp/languages","stargazers_url":"https://api.github.com/repos/xiph/speexdsp/stargazers","contributors_url":"https://api.github.com/repos/xiph/speexdsp/contributors","subscribers_url":"https://api.github.com/repos/xiph/speexdsp/subscribers","subscription_url":"https://api.github.com/repos/xiph/speexdsp/subscription","commits_url":"https://api.github.com/repos/xiph/speexdsp/commits{/sha}","git_commits_url":"https://api.github.com/repos/xiph/speexdsp/git/commits{/sha}","comments_url":"https://api.github.com/repos/xiph/speexdsp/comments{/number}","issue_comment_url":"https://api.github.com/repos/xiph/speexdsp/issues/comments{/number}","contents_url":"https://api.github.com/repos/xiph/speexdsp/contents/{+path}","compare_url":"https://api.github.com/repos/xiph/speexdsp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xiph/speexdsp/merges","archive_url":"https://api.github.com/repos/xiph/speexdsp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xiph/speexdsp/downloads","issues_url":"https://api.github.com/repos/xiph/speexdsp/issues{/number}","pulls_url":"https://api.github.com/repos/xiph/speexdsp/pulls{/number}","milestones_url":"https://api.github.com/repos/xiph/speexdsp/milestones{/number}","notifications_url":"https://api.github.com/repos/xiph/speexdsp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xiph/speexdsp/labels{/name}","releases_url":"https://api.github.com/repos/xiph/speexdsp/releases{/id}","deployments_url":"https://api.github.com/repos/xiph/speexdsp/deployments","created_at":"2014-12-07T00:23:23Z","updated_at":"2016-08-03T15:49:15Z","pushed_at":"2016-08-02T02:04:21Z","git_url":"git://github.com/xiph/speexdsp.git","ssh_url":"git@github.com:xiph/speexdsp.git","clone_url":"https://github.com/xiph/speexdsp.git","svn_url":"https://github.com/xiph/speexdsp","homepage":"","size":6669,"stargazers_count":17,"watchers_count":17,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":19,"mirror_url":null,"open_issues_count":3,"forks":19,"open_issues":3,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xiph/speexdsp/pulls/8"},"html":{"href":"https://github.com/xiph/speexdsp/pull/8"},"issue":{"href":"https://api.github.com/repos/xiph/speexdsp/issues/8"},"comments":{"href":"https://api.github.com/repos/xiph/speexdsp/issues/8/comments"},"review_comments":{"href":"https://api.github.com/repos/xiph/speexdsp/pulls/8/comments"},"review_comment":{"href":"https://api.github.com/repos/xiph/speexdsp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/xiph/speexdsp/pulls/8/commits"},"statuses":{"href":"https://api.github.com/repos/xiph/speexdsp/statuses/7c20961d4688ca1a486557d88fefcfe4f6c11412"}}}}
{"actor":{"display_login":"fbarchard"}}