Skip to content

Commit 2e386b2

Browse files
committed
[AArch64][GlobalISel] Add test cases for 128-bit fabs. (NFC)
1 parent 7b4b85b commit 2e386b2

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2+
; RUN: llc -mtriple=aarch64 -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD
3+
; RUN: llc -mtriple=aarch64 -global-isel=1 -global-isel-abort=2 -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI
4+
5+
; CHECK: warning: Instruction selection used fallback path for fabs_f128
6+
; CHECK-NEXT: warning: Instruction selection used fallback path for fabs_v1f128
7+
; CHECK-NEXT: warning: Instruction selection used fallback path for fabs_v2f128
8+
9+
define fp128 @fabs_f128(fp128 %a) {
10+
; CHECK-LABEL: fabs_f128:
11+
; CHECK: // %bb.0: // %entry
12+
; CHECK-NEXT: str q0, [sp, #-16]!
13+
; CHECK-NEXT: .cfi_def_cfa_offset 16
14+
; CHECK-NEXT: ldrb w8, [sp, #15]
15+
; CHECK-NEXT: and w8, w8, #0x7f
16+
; CHECK-NEXT: strb w8, [sp, #15]
17+
; CHECK-NEXT: ldr q0, [sp], #16
18+
; CHECK-NEXT: ret
19+
entry:
20+
%c = call fp128 @llvm.fabs.f128(fp128 %a)
21+
ret fp128 %c
22+
}
23+
24+
define <1 x fp128> @fabs_v1f128(<1 x fp128> %a) {
25+
; CHECK-LABEL: fabs_v1f128:
26+
; CHECK: // %bb.0: // %entry
27+
; CHECK-NEXT: str q0, [sp, #-16]!
28+
; CHECK-NEXT: .cfi_def_cfa_offset 16
29+
; CHECK-NEXT: ldrb w8, [sp, #15]
30+
; CHECK-NEXT: and w8, w8, #0x7f
31+
; CHECK-NEXT: strb w8, [sp, #15]
32+
; CHECK-NEXT: ldr q0, [sp], #16
33+
; CHECK-NEXT: ret
34+
entry:
35+
%c = call <1 x fp128> @llvm.fabs.v1f128(<1 x fp128> %a)
36+
ret <1 x fp128> %c
37+
}
38+
39+
define <2 x fp128> @fabs_v2f128(<2 x fp128> %a) {
40+
; CHECK-LABEL: fabs_v2f128:
41+
; CHECK: // %bb.0: // %entry
42+
; CHECK-NEXT: stp q0, q1, [sp, #-32]!
43+
; CHECK-NEXT: .cfi_def_cfa_offset 32
44+
; CHECK-NEXT: ldrb w8, [sp, #15]
45+
; CHECK-NEXT: and w8, w8, #0x7f
46+
; CHECK-NEXT: strb w8, [sp, #15]
47+
; CHECK-NEXT: ldrb w8, [sp, #31]
48+
; CHECK-NEXT: and w8, w8, #0x7f
49+
; CHECK-NEXT: strb w8, [sp, #31]
50+
; CHECK-NEXT: ldp q0, q1, [sp], #32
51+
; CHECK-NEXT: ret
52+
entry:
53+
%c = call <2 x fp128> @llvm.fabs.v2f128(<2 x fp128> %a)
54+
ret <2 x fp128> %c
55+
}
56+
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
57+
; CHECK-GI: {{.*}}
58+
; CHECK-SD: {{.*}}

0 commit comments

Comments
 (0)