Home | History | Annotate | Download | only in X86
      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 }
     36