blob: 47384fa98843123565e9da5f9c42ffcfb3a45da2 [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
Craig Toppere7f26112016-09-29 05:54:39 +000014; CHECK-NEXT: vbroadcastss {{.*}}(%rip), %zmm1
15; CHECK-NEXT: vmovaps %zmm1, (%rbx)
Igor Bregerf8e461f2015-10-26 08:37:12 +000016; CHECK-NEXT: callq _Print__512
17; CHECK-NEXT: vmovups (%rsp), %zmm0 ## 64-byte Reload
18; CHECK-NEXT: callq _Print__512
Craig Toppere7f26112016-09-29 05:54:39 +000019; CHECK-NEXT: vbroadcastss {{.*}}(%rip), %zmm0
20; CHECK-NEXT: vmovaps %zmm0, (%rbx)
Igor Bregerf8e461f2015-10-26 08:37:12 +000021; 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 }