1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=avx512f | FileCheck %s
4 define void @main(<24 x ptr> %x)
6 ; CHECK: # %bb.0: # %entry
7 ; CHECK-NEXT: vmovq %rcx, %xmm0
8 ; CHECK-NEXT: vmovq %rdx, %xmm1
9 ; CHECK-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
10 ; CHECK-NEXT: vmovq %rsi, %xmm1
11 ; CHECK-NEXT: vmovq %rdi, %xmm2
12 ; CHECK-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
13 ; CHECK-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm0
14 ; CHECK-NEXT: vmovq %r9, %xmm1
15 ; CHECK-NEXT: vmovq %r8, %xmm2
16 ; CHECK-NEXT: vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]
17 ; CHECK-NEXT: vinserti128 $1, {{[0-9]+}}(%rsp), %ymm1, %ymm1
18 ; CHECK-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
19 ; CHECK-NEXT: vmovups {{[0-9]+}}(%rsp), %zmm1
20 ; CHECK-NEXT: vmovups {{[0-9]+}}(%rsp), %zmm2
21 ; CHECK-NEXT: kxnorw %k0, %k0, %k1
22 ; CHECK-NEXT: vbroadcastf128 {{.*#+}} ymm3 = [8.33005607E-1,8.435871E-1,1.69435993E-1,8.33005607E-1,8.33005607E-1,8.435871E-1,1.69435993E-1,8.33005607E-1]
23 ; CHECK-NEXT: # ymm3 = mem[0,1,0,1]
24 ; CHECK-NEXT: kxnorw %k0, %k0, %k2
25 ; CHECK-NEXT: vscatterqps %ymm3, (,%zmm0) {%k2}
26 ; CHECK-NEXT: kxnorw %k0, %k0, %k2
27 ; CHECK-NEXT: vscatterqps %ymm3, (,%zmm2) {%k2}
28 ; CHECK-NEXT: vscatterqps %ymm3, (,%zmm1) {%k1}
29 ; CHECK-NEXT: vzeroupper
33 call void @llvm.masked.scatter.v24f32.v24p0(<24 x float> <float 0x3FEAA7FB60000000, float 0x3FEAFEAA60000000, float 0x3FC5B01420000000, float 0x3FEAA7FB60000000, float 0x3FEAA7FB60000000, float 0x3FEAFEAA60000000, float 0x3FC5B01420000000, float 0x3FEAA7FB60000000, float 0x3FEAA7FB60000000, float 0x3FEAFEAA60000000, float 0x3FC5B01420000000, float 0x3FEAA7FB60000000, float 0x3FEAA7FB60000000, float 0x3FEAFEAA60000000, float 0x3FC5B01420000000, float 0x3FEAA7FB60000000, float 0x3FEAA7FB60000000, float 0x3FEAFEAA60000000, float 0x3FC5B01420000000, float 0x3FEAA7FB60000000, float 0x3FEAA7FB60000000, float 0x3FEAFEAA60000000, float 0x3FC5B01420000000, float 0x3FEAA7FB60000000>, <24 x ptr> %x, i32 4, <24 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>)
37 declare void @llvm.masked.scatter.v24f32.v24p0(<24 x float>, <24 x ptr>, i32 immarg, <24 x i1>)