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
4 declare void @Print__512(<16 x i32>) #0
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: vmovups (%rdi), %zmm0
13 ; CHECK-NEXT: vmovups %zmm0, (%rsp) ## 64-byte Spill
14 ; CHECK-NEXT: vbroadcastss {{.*#+}} zmm1 = [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]
15 ; CHECK-NEXT: vmovaps %zmm1, (%rdi)
16 ; CHECK-NEXT: callq _Print__512
17 ; CHECK-NEXT: vmovups (%rsp), %zmm0 ## 64-byte Reload
18 ; CHECK-NEXT: callq _Print__512
19 ; CHECK-NEXT: vbroadcastss {{.*#+}} zmm0 = [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
20 ; CHECK-NEXT: vmovaps %zmm0, (%rbx)
21 ; CHECK-NEXT: addq $112, %rsp
22 ; CHECK-NEXT: popq %rbx
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
35 attributes #0 = { nounwind }