Index: llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td =================================================================== --- llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td +++ llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td @@ -28,10 +28,6 @@ defm "" : ARGUMENT; // Constrained immediate argument types -foreach SIZE = [8, 16] in -def ImmI#SIZE : ImmLeaf; foreach SIZE = [2, 4, 8, 16, 32] in def LaneIdx#SIZE : ImmLeaf; @@ -110,10 +106,11 @@ vec_i8imm_op:$iA, vec_i8imm_op:$iB, vec_i8imm_op:$iC, vec_i8imm_op:$iD, vec_i8imm_op:$iE, vec_i8imm_op:$iF), - (build_vector ImmI8:$i0, ImmI8:$i1, ImmI8:$i2, ImmI8:$i3, - ImmI8:$i4, ImmI8:$i5, ImmI8:$i6, ImmI8:$i7, - ImmI8:$i8, ImmI8:$i9, ImmI8:$iA, ImmI8:$iB, - ImmI8:$iC, ImmI8:$iD, ImmI8:$iE, ImmI8:$iF), + (build_vector + (i32 imm:$i0), (i32 imm:$i1), (i32 imm:$i2), (i32 imm:$i3), + (i32 imm:$i4), (i32 imm:$i5), (i32 imm:$i6), (i32 imm:$i7), + (i32 imm:$i8), (i32 imm:$i9), (i32 imm:$iA), (i32 imm:$iB), + (i32 imm:$iC), (i32 imm:$iD), (i32 imm:$iE), (i32 imm:$iF)), !strconcat("$i0, $i1, $i2, $i3, $i4, $i5, $i6, $i7, ", "$i8, $i9, $iA, $iB, $iC, $iD, $iE, $iF")>; defm "" : ConstVec; defm "" : ConstVec @different_const_one_replaced_i8x16(i16 %x) { %v = insertelement - <8 x i16> , + <8 x i16> , i16 %x, i32 5 ret <8 x i16> %v