diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp index 4255e0eb158..50bd5a94f4b 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp @@ -1291,6 +1291,11 @@ SDValue WebAssemblyTargetLowering::LowerShift(SDValue Op, // Only manually lower vector shifts assert(Op.getSimpleValueType().isVector()); + // Expand all vector shifts until V8 fixes its implementation + // TODO: remove this once V8 is fixed + if (!Subtarget->hasUnimplementedSIMD128()) + return unrollVectorShift(Op, DAG); + // Unroll non-splat vector shifts BuildVectorSDNode *ShiftVec; SDValue SplatVal; |

