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