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 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 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 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 } 36