|
2 | 2 | ; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD
|
3 | 3 | ; RUN: llc -mtriple=aarch64 -global-isel -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI
|
4 | 4 |
|
5 |
| -; CHECK-GI: warning: Instruction selection used fallback path for store_v2i8 |
6 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for store_v4i8 |
7 |
| - |
8 | 5 | ; ===== Legal Scalars =====
|
9 | 6 | define void @store_i8(i8 %a, ptr %ptr){
|
10 | 7 | ; CHECK-LABEL: store_i8:
|
@@ -110,14 +107,22 @@ define void @store_v2i64(<2 x i64> %a, ptr %ptr){
|
110 | 107 | ; ===== Smaller/Larger Width Vectors with Legal Element Sizes =====
|
111 | 108 |
|
112 | 109 | define void @store_v2i8(<2 x i8> %a, ptr %ptr){
|
113 |
| -; CHECK-LABEL: store_v2i8: |
114 |
| -; CHECK: // %bb.0: |
115 |
| -; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 |
116 |
| -; CHECK-NEXT: mov w8, v0.s[1] |
117 |
| -; CHECK-NEXT: fmov w9, s0 |
118 |
| -; CHECK-NEXT: strb w9, [x0] |
119 |
| -; CHECK-NEXT: strb w8, [x0, #1] |
120 |
| -; CHECK-NEXT: ret |
| 110 | +; CHECK-SD-LABEL: store_v2i8: |
| 111 | +; CHECK-SD: // %bb.0: |
| 112 | +; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 |
| 113 | +; CHECK-SD-NEXT: mov w8, v0.s[1] |
| 114 | +; CHECK-SD-NEXT: fmov w9, s0 |
| 115 | +; CHECK-SD-NEXT: strb w9, [x0] |
| 116 | +; CHECK-SD-NEXT: strb w8, [x0, #1] |
| 117 | +; CHECK-SD-NEXT: ret |
| 118 | +; |
| 119 | +; CHECK-GI-LABEL: store_v2i8: |
| 120 | +; CHECK-GI: // %bb.0: |
| 121 | +; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 |
| 122 | +; CHECK-GI-NEXT: mov s1, v0.s[1] |
| 123 | +; CHECK-GI-NEXT: str b0, [x0] |
| 124 | +; CHECK-GI-NEXT: str b1, [x0, #1] |
| 125 | +; CHECK-GI-NEXT: ret |
121 | 126 | store <2 x i8> %a, ptr %ptr
|
122 | 127 | ret void
|
123 | 128 | }
|
|
0 commit comments