{"action":"created","issue":{"url":"https://api.github.com/repos/kripken/emscripten/issues/3127","labels_url":"https://api.github.com/repos/kripken/emscripten/issues/3127/labels{/name}","comments_url":"https://api.github.com/repos/kripken/emscripten/issues/3127/comments","events_url":"https://api.github.com/repos/kripken/emscripten/issues/3127/events","html_url":"https://github.com/kripken/emscripten/issues/3127","id":54297918,"number":3127,"title":"The performance of SIMD.js benchmark decreases after upgrading to llvm 3.5","user":{"login":"huningxin","id":1005673,"avatar_url":"https://avatars.githubusercontent.com/u/1005673?v=3","gravatar_id":"","url":"https://api.github.com/users/huningxin","html_url":"https://github.com/huningxin","followers_url":"https://api.github.com/users/huningxin/followers","following_url":"https://api.github.com/users/huningxin/following{/other_user}","gists_url":"https://api.github.com/users/huningxin/gists{/gist_id}","starred_url":"https://api.github.com/users/huningxin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huningxin/subscriptions","organizations_url":"https://api.github.com/users/huningxin/orgs","repos_url":"https://api.github.com/users/huningxin/repos","events_url":"https://api.github.com/users/huningxin/events{/privacy}","received_events_url":"https://api.github.com/users/huningxin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-01-14T08:57:13Z","updated_at":"2015-01-14T19:56:25Z","closed_at":null,"body":"When I use emscripten at https://github.com/kripken/emscripten/commit/d07af0a924ff248aaa3a4d9c9369c16070fe5377 of incoming branch to build benchcpp (https://github.com/PeterJensen/benchcpp), the performance of kernels except AverageFloat32x4 decrease significantly comparing to 1.28.3.\r\n\r\nThe initial investigation shows, e.g. for MatrixMultiplication kernel (https://github.com/PeterJensen/benchcpp/blob/master/matrix_multiplication.h), the `_mm_load_ps` should generate `SIMD_float32x4_load`, however emscripten generates 4 `HEAPF32[index]` loads with a 'SIMD_float32x4` constructor. And the `_mm_shuffle_ps` API generates the 'SIMD_float32x4` constructor with lanes access instead of `SIMD_float32x4_swizzle` or `SIMD_float32x4_shuffle`. \r\n\r\n@sunfishcode , any insights of this issue? Thanks!"},"comment":{"url":"https://api.github.com/repos/kripken/emscripten/issues/comments/69980440","html_url":"https://github.com/kripken/emscripten/issues/3127#issuecomment-69980440","issue_url":"https://api.github.com/repos/kripken/emscripten/issues/3127","id":69980440,"user":{"login":"kripken","id":173661,"avatar_url":"https://avatars.githubusercontent.com/u/173661?v=3","gravatar_id":"","url":"https://api.github.com/users/kripken","html_url":"https://github.com/kripken","followers_url":"https://api.github.com/users/kripken/followers","following_url":"https://api.github.com/users/kripken/following{/other_user}","gists_url":"https://api.github.com/users/kripken/gists{/gist_id}","starred_url":"https://api.github.com/users/kripken/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kripken/subscriptions","organizations_url":"https://api.github.com/users/kripken/orgs","repos_url":"https://api.github.com/users/kripken/repos","events_url":"https://api.github.com/users/kripken/events{/privacy}","received_events_url":"https://api.github.com/users/kripken/received_events","type":"User","site_admin":false},"created_at":"2015-01-14T19:56:25Z","updated_at":"2015-01-14T19:56:25Z","body":"Ah, I should probably build with `-s SIMD=1`. But I still get a compile-time error,\r\n\r\n````\r\n  %19 = mul i128 %14, %18\r\nllc: /media/alon/2f9a30d7-6124-42d9-87c5-3c80cb70ec54/home/alon/Dev/fastcomp/lib/Target/JSBackend/ExpandI64.cpp:549: bool {anonymous}::ExpandI64::splitInst(llvm::Instruction*): Assertion `I->getOpcode() == Instruction::LShr || I->getOpcode() == Instruction::AShr || I->getOpcode() == Instruction::Shl' failed.\r\n````\r\n\r\nHow are you building?"}}