| James Y Knight | 7c90506 | 2015-11-23 21:33:58 +0000 | [diff] [blame] | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| Igor Breger | f8e461f | 2015-10-26 08:37:12 +0000 | [diff] [blame] | 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 |
| Craig Topper | c48c029 | 2016-08-01 07:55:33 +0000 | [diff] [blame] | 12 | ; CHECK-NEXT: vmovups (%rbx), %zmm0 |
| 13 | ; CHECK-NEXT: vmovups %zmm0, (%rsp) ## 64-byte Spill |
| Craig Topper | e7f2611 | 2016-09-29 05:54:39 +0000 | [diff] [blame] | 14 | ; CHECK-NEXT: vbroadcastss {{.*}}(%rip), %zmm1 |
| 15 | ; CHECK-NEXT: vmovaps %zmm1, (%rbx) |
| Igor Breger | f8e461f | 2015-10-26 08:37:12 +0000 | [diff] [blame] | 16 | ; CHECK-NEXT: callq _Print__512 |
| 17 | ; CHECK-NEXT: vmovups (%rsp), %zmm0 ## 64-byte Reload |
| 18 | ; CHECK-NEXT: callq _Print__512 |
| Craig Topper | e7f2611 | 2016-09-29 05:54:39 +0000 | [diff] [blame] | 19 | ; CHECK-NEXT: vbroadcastss {{.*}}(%rip), %zmm0 |
| 20 | ; CHECK-NEXT: vmovaps %zmm0, (%rbx) |
| Igor Breger | f8e461f | 2015-10-26 08:37:12 +0000 | [diff] [blame] | 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 } |