|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
|
2 | 2 | ; RUN: llc -mtriple=aarch64-none-linux-gnu %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD
|
3 |
| -; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI |
4 |
| - |
5 |
| -; CHECK-GI: warning: Instruction selection used fallback path for load_v2i8 |
6 |
| -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for load_v4i8 |
| 3 | +; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI |
7 | 4 |
|
8 | 5 | ; ===== Legal Scalars =====
|
9 | 6 |
|
@@ -111,13 +108,21 @@ define <2 x i64> @load_v2i64(ptr %ptr){
|
111 | 108 | ; ===== Smaller/Larger Width Vectors with Legal Element Sizes =====
|
112 | 109 |
|
113 | 110 | define <2 x i8> @load_v2i8(ptr %ptr, <2 x i8> %b){
|
114 |
| -; CHECK-LABEL: load_v2i8: |
115 |
| -; CHECK: // %bb.0: |
116 |
| -; CHECK-NEXT: ld1 { v0.b }[0], [x0] |
117 |
| -; CHECK-NEXT: add x8, x0, #1 |
118 |
| -; CHECK-NEXT: ld1 { v0.b }[4], [x8] |
119 |
| -; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 |
120 |
| -; CHECK-NEXT: ret |
| 111 | +; CHECK-SD-LABEL: load_v2i8: |
| 112 | +; CHECK-SD: // %bb.0: |
| 113 | +; CHECK-SD-NEXT: ld1 { v0.b }[0], [x0] |
| 114 | +; CHECK-SD-NEXT: add x8, x0, #1 |
| 115 | +; CHECK-SD-NEXT: ld1 { v0.b }[4], [x8] |
| 116 | +; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 |
| 117 | +; CHECK-SD-NEXT: ret |
| 118 | +; |
| 119 | +; CHECK-GI-LABEL: load_v2i8: |
| 120 | +; CHECK-GI: // %bb.0: |
| 121 | +; CHECK-GI-NEXT: ldr b0, [x0] |
| 122 | +; CHECK-GI-NEXT: ldr b1, [x0, #1] |
| 123 | +; CHECK-GI-NEXT: mov v0.s[1], v1.s[0] |
| 124 | +; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 |
| 125 | +; CHECK-GI-NEXT: ret |
121 | 126 | %a = load <2 x i8>, ptr %ptr
|
122 | 127 | ret <2 x i8> %a
|
123 | 128 | }
|
|
0 commit comments