[AVX512] add PSLLD and PSLLQ Intrinsic
[oota-llvm.git] / test / CodeGen / X86 / avx512-bugfix-25270.ll
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
3
4 declare void @Print__512(<16 x i32>) #0
5
6 define void @bar__512(<16 x i32>* %var) #0 {
7 ; CHECK-LABEL: bar__512:
8 ; CHECK:       ## BB#0: ## %allocas
9 ; CHECK-NEXT:    pushq %rbx
10 ; CHECK-NEXT:    subq $112, %rsp
11 ; CHECK-NEXT:    movq %rdi, %rbx
12 ; CHECK-NEXT:    vmovdqu32 (%rbx), %zmm0
13 ; CHECK-NEXT:    vmovups %zmm0, (%rsp) ## 64-byte Spill
14 ; CHECK-NEXT:    vpbroadcastd {{.*}}(%rip), %zmm1
15 ; CHECK-NEXT:    vmovdqa32 %zmm1, (%rbx)
16 ; CHECK-NEXT:    callq _Print__512
17 ; CHECK-NEXT:    vmovups (%rsp), %zmm0 ## 64-byte Reload
18 ; CHECK-NEXT:    callq _Print__512
19 ; CHECK-NEXT:    vpbroadcastd {{.*}}(%rip), %zmm0
20 ; CHECK-NEXT:    vmovdqa32 %zmm0, (%rbx)
21 ; CHECK-NEXT:    addq $112, %rsp
22 ; CHECK-NEXT:    popq %rbx
23 ; CHECK-NEXT:    retq
24 allocas:
25   %var_load_load = load <16 x i32>, <16 x i32>* %var, align 1
26   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   call void @Print__512(<16 x i32> %var_load_load)
28  ; %var_load_load value should be reloaded
29   call void @Print__512(<16 x i32> %var_load_load)
30   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   ret void
32 }
33
34
35 attributes #0 = { nounwind }