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
3
4define void @main(<24 x float*> %x)
5; CHECK-LABEL: main:
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
30; CHECK-NEXT:    retq
31{
32entry:
33  call void @llvm.masked.scatter.v24f32.v24p0f32(<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 float*> %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>)
34  ret void
35}
36
37declare void @llvm.masked.scatter.v24f32.v24p0f32(<24 x float>, <24 x float*>, i32 immarg, <24 x i1>)
38