blob: 7e8b5219dc4fb6827f7cf5a28979c1ca0ca11fd0 [file] [log] [blame]
James Y Knight7c905062015-11-23 21:33:58 +00001; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
Igor Bregerf8e461f2015-10-26 08:37:12 +00002; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=knl | FileCheck %s
3
4declare void @Print__512(<16 x i32>) #0
5
6define 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
Craig Topperc48c0292016-08-01 07:55:33 +000012; CHECK-NEXT: vmovups (%rbx), %zmm0
13; CHECK-NEXT: vmovups %zmm0, (%rsp) ## 64-byte Spill
Igor Bregerf8e461f2015-10-26 08:37:12 +000014; 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
24allocas:
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
35attributes #0 = { nounwind }