{"action":"opened","issue":{"url":"https://api.github.com/repos/kripken/emscripten/issues/4088","repository_url":"https://api.github.com/repos/kripken/emscripten","labels_url":"https://api.github.com/repos/kripken/emscripten/issues/4088/labels{/name}","comments_url":"https://api.github.com/repos/kripken/emscripten/issues/4088/comments","events_url":"https://api.github.com/repos/kripken/emscripten/issues/4088/events","html_url":"https://github.com/kripken/emscripten/issues/4088","id":132726218,"number":4088,"title":"Missing builtin: __builtin_ia32_sqrtsd","user":{"login":"bjacob","id":79535,"avatar_url":"https://avatars.githubusercontent.com/u/79535?v=3","gravatar_id":"","url":"https://api.github.com/users/bjacob","html_url":"https://github.com/bjacob","followers_url":"https://api.github.com/users/bjacob/followers","following_url":"https://api.github.com/users/bjacob/following{/other_user}","gists_url":"https://api.github.com/users/bjacob/gists{/gist_id}","starred_url":"https://api.github.com/users/bjacob/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjacob/subscriptions","organizations_url":"https://api.github.com/users/bjacob/orgs","repos_url":"https://api.github.com/users/bjacob/repos","events_url":"https://api.github.com/users/bjacob/events{/privacy}","received_events_url":"https://api.github.com/users/bjacob/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-02-10T15:14:25Z","updated_at":"2016-02-10T15:14:25Z","closed_at":null,"body":"GCC-compatible compilers support various builtins that give access to specific instructions not otherwise covered by standard intrinsics.\r\n\r\n__builtin_ia32_sqrtsd is an example. It gives access to scalar (non-SIMD) square-root instruction SQRTSD.\r\n\r\nIt's used by Eigen, so lack of support currently means that Eigen has to special-case Emscripten.\r\n\r\nTestcase:\r\n\r\n#include <xmmintrin.h>\r\nint main() {\r\n  double x = 0;\r\n  __builtin_ia32_sqrtsd(_mm_set_sd(x));\r\n}\r\n\r\nResult:\r\n\r\n/usr/local/google/home/benoitjacob/vrac/missing-builtin-sqrt.cc:5:3: error: use of undeclared identifier '__builtin_ia32_sqrtsd'\r\n  __builtin_ia32_sqrtsd(_mm_set_sd(x));\r\n\r\n\r\n"}}