xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/avx512-bugfix-25270.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdeclare void @Print__512(<16 x i32>) #0
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Workerdefine void @bar__512(<16 x i32>* %var) #0 {
7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bar__512:
8*9880d681SAndroid Build Coastguard Worker; CHECK:       ## BB#0: ## %allocas
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    pushq %rbx
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    subq $112, %rsp
11*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    movq %rdi, %rbx
12*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    vmovdqu32 (%rbx), %zmm0
13*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    vmovups %zmm0, (%rsp) ## 64-byte Spill
14*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    vpbroadcastd {{.*}}(%rip), %zmm1
15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    vmovdqa32 %zmm1, (%rbx)
16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    callq _Print__512
17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    vmovups (%rsp), %zmm0 ## 64-byte Reload
18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    callq _Print__512
19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    vpbroadcastd {{.*}}(%rip), %zmm0
20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    vmovdqa32 %zmm0, (%rbx)
21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    addq $112, %rsp
22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    popq %rbx
23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    retq
24*9880d681SAndroid Build Coastguard Workerallocas:
25*9880d681SAndroid Build Coastguard Worker  %var_load_load = load <16 x i32>, <16 x i32>* %var, align 1
26*9880d681SAndroid Build Coastguard Worker  store <16 x i32> <i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4, i32 4>, <16 x i32>* %var, align 64
27*9880d681SAndroid Build Coastguard Worker  call void @Print__512(<16 x i32> %var_load_load)
28*9880d681SAndroid Build Coastguard Worker ; %var_load_load value should be reloaded
29*9880d681SAndroid Build Coastguard Worker  call void @Print__512(<16 x i32> %var_load_load)
30*9880d681SAndroid Build Coastguard Worker  store <16 x i32> <i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7, i32 7>, <16 x i32>* %var, align 64
31*9880d681SAndroid Build Coastguard Worker  ret void
32*9880d681SAndroid Build Coastguard Worker}
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind }
36