blob: 86d3d5ed829b8802bc0aa67c6a8477c3a7e3c9d7 [file] [log] [blame] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=wasm32-unknown-unknown -mattr=+simd128 -verify-machineinstrs | FileCheck %s
target triple = "wasm32-unknown-unknown"
define <128 x i1> @wide_sv_v8i1_v128i1(<8 x i1> %cmp.i) {
; CHECK-LABEL: wide_sv_v8i1_v128i1:
; CHECK: .functype wide_sv_v8i1_v128i1 (i32, v128) -> ()
; CHECK-NEXT: # %bb.0:
; CHECK-NEXT: local.get 0
; CHECK-NEXT: local.get 1
; CHECK-NEXT: i16x8.extract_lane_u 0
; CHECK-NEXT: i32x4.splat
; CHECK-NEXT: local.get 1
; CHECK-NEXT: i16x8.extract_lane_u 1
; CHECK-NEXT: i32x4.replace_lane 1
; CHECK-NEXT: local.get 1
; CHECK-NEXT: i16x8.extract_lane_u 2
; CHECK-NEXT: i32x4.replace_lane 2
; CHECK-NEXT: local.get 1
; CHECK-NEXT: i16x8.extract_lane_u 3
; CHECK-NEXT: i32x4.replace_lane 3
; CHECK-NEXT: v128.store 0
; CHECK-NEXT: # fallthrough-return
%.splat = shufflevector <8 x i1> %cmp.i, <8 x i1> zeroinitializer, <128 x i32> <i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 2, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
ret <128 x i1> %.splat
}
define <128 x i1> @wide_sv_v16i1_v128i1(<16 x i1> %cmp.i) {
; CHECK-LABEL: wide_sv_v16i1_v128i1:
; CHECK: .functype wide_sv_v16i1_v128i1 (i32, v128) -> ()
; CHECK-NEXT: # %bb.0:
; CHECK-NEXT: local.get 0
; CHECK-NEXT: local.get 1
; CHECK-NEXT: i8x16.extract_lane_u 0
; CHECK-NEXT: i32x4.splat
; CHECK-NEXT: local.get 1
; CHECK-NEXT: i8x16.extract_lane_u 1
; CHECK-NEXT: i32x4.replace_lane 1
; CHECK-NEXT: local.get 1
; CHECK-NEXT: i8x16.extract_lane_u 2
; CHECK-NEXT: i32x4.replace_lane 2
; CHECK-NEXT: local.get 1
; CHECK-NEXT: i8x16.extract_lane_u 3
; CHECK-NEXT: i32x4.replace_lane 3
; CHECK-NEXT: v128.store 0
; CHECK-NEXT: # fallthrough-return
%.splat = shufflevector <16 x i1> %cmp.i, <16 x i1> zeroinitializer, <128 x i32> <i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 2, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
ret <128 x i1> %.splat
}