Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/CodeGen/WebAssembly/simd-extending.ll
Show First 20 Lines • Show All 182 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
define <4 x i32> @extend_lowish_i16x8_s(<8 x i16> %v) { | define <4 x i32> @extend_lowish_i16x8_s(<8 x i16> %v) { | ||||
; CHECK-LABEL: extend_lowish_i16x8_s: | ; CHECK-LABEL: extend_lowish_i16x8_s: | ||||
; CHECK: .functype extend_lowish_i16x8_s (v128) -> (v128) | ; CHECK: .functype extend_lowish_i16x8_s (v128) -> (v128) | ||||
; CHECK-NEXT: # %bb.0: | ; CHECK-NEXT: # %bb.0: | ||||
; CHECK-NEXT: local.get 0 | ; CHECK-NEXT: local.get 0 | ||||
; CHECK-NEXT: local.get 0 | ; CHECK-NEXT: local.get 0 | ||||
; CHECK-NEXT: i8x16.shuffle 2, 3, 0, 0, 4, 5, 0, 0, 6, 7, 0, 0, 8, 9, 0, 0 | ; CHECK-NEXT: i8x16.shuffle 2, 3, 0, 1, 4, 5, 0, 1, 6, 7, 0, 1, 8, 9, 0, 1 | ||||
; CHECK-NEXT: i32.const 16 | ; CHECK-NEXT: i32.const 16 | ||||
; CHECK-NEXT: i32x4.shl | ; CHECK-NEXT: i32x4.shl | ||||
; CHECK-NEXT: i32.const 16 | ; CHECK-NEXT: i32.const 16 | ||||
; CHECK-NEXT: i32x4.shr_s | ; CHECK-NEXT: i32x4.shr_s | ||||
; CHECK-NEXT: # fallthrough-return | ; CHECK-NEXT: # fallthrough-return | ||||
%lowish = shufflevector <8 x i16> %v, <8 x i16> undef, | %lowish = shufflevector <8 x i16> %v, <8 x i16> undef, | ||||
<4 x i32> <i32 1, i32 2, i32 3, i32 4> | <4 x i32> <i32 1, i32 2, i32 3, i32 4> | ||||
%extended = sext <4 x i16> %lowish to <4 x i32> | %extended = sext <4 x i16> %lowish to <4 x i32> | ||||
ret <4 x i32> %extended | ret <4 x i32> %extended | ||||
} | } |