Skip to content

Commit e8b5928

Browse files
davemgreenmahesh-attarde
authored andcommitted
[AArch64][GISel] Add test coverage for urem-lkk.ll. NFC
1 parent ced34ca commit e8b5928

File tree

1 file changed

+43
-25
lines changed

1 file changed

+43
-25
lines changed

llvm/test/CodeGen/AArch64/urem-lkk.ll

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s
2+
; RUN: llc -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s --check-prefixes=CHECK,CHECK-SD
3+
; RUN: llc -mtriple=aarch64-unknown-linux-gnu -global-isel < %s | FileCheck %s --check-prefixes=CHECK,CHECK-GI
34

45
define i32 @fold_urem_positive_odd(i32 %x) {
56
; CHECK-LABEL: fold_urem_positive_odd:
@@ -18,37 +19,54 @@ define i32 @fold_urem_positive_odd(i32 %x) {
1819
ret i32 %1
1920
}
2021

21-
2222
define i32 @fold_urem_positive_even(i32 %x) {
23-
; CHECK-LABEL: fold_urem_positive_even:
24-
; CHECK: // %bb.0:
25-
; CHECK-NEXT: mov w8, #16323 // =0x3fc3
26-
; CHECK-NEXT: mov w9, #1060 // =0x424
27-
; CHECK-NEXT: movk w8, #63310, lsl #16
28-
; CHECK-NEXT: umull x8, w0, w8
29-
; CHECK-NEXT: lsr x8, x8, #42
30-
; CHECK-NEXT: msub w0, w8, w9, w0
31-
; CHECK-NEXT: ret
23+
; CHECK-SD-LABEL: fold_urem_positive_even:
24+
; CHECK-SD: // %bb.0:
25+
; CHECK-SD-NEXT: mov w8, #16323 // =0x3fc3
26+
; CHECK-SD-NEXT: mov w9, #1060 // =0x424
27+
; CHECK-SD-NEXT: movk w8, #63310, lsl #16
28+
; CHECK-SD-NEXT: umull x8, w0, w8
29+
; CHECK-SD-NEXT: lsr x8, x8, #42
30+
; CHECK-SD-NEXT: msub w0, w8, w9, w0
31+
; CHECK-SD-NEXT: ret
32+
;
33+
; CHECK-GI-LABEL: fold_urem_positive_even:
34+
; CHECK-GI: // %bb.0:
35+
; CHECK-GI-NEXT: mov w8, #16323 // =0x3fc3
36+
; CHECK-GI-NEXT: mov w9, #1060 // =0x424
37+
; CHECK-GI-NEXT: movk w8, #63310, lsl #16
38+
; CHECK-GI-NEXT: umull x8, w0, w8
39+
; CHECK-GI-NEXT: lsr x8, x8, #32
40+
; CHECK-GI-NEXT: lsr w8, w8, #10
41+
; CHECK-GI-NEXT: msub w0, w8, w9, w0
42+
; CHECK-GI-NEXT: ret
3243
%1 = urem i32 %x, 1060
3344
ret i32 %1
3445
}
3546

36-
3747
; Don't fold if we can combine urem with udiv.
3848
define i32 @combine_urem_udiv(i32 %x) {
39-
; CHECK-LABEL: combine_urem_udiv:
40-
; CHECK: // %bb.0:
41-
; CHECK-NEXT: mov w8, #8969 // =0x2309
42-
; CHECK-NEXT: movk w8, #22765, lsl #16
43-
; CHECK-NEXT: umull x8, w0, w8
44-
; CHECK-NEXT: lsr x8, x8, #32
45-
; CHECK-NEXT: sub w9, w0, w8
46-
; CHECK-NEXT: add w8, w8, w9, lsr #1
47-
; CHECK-NEXT: mov w9, #95 // =0x5f
48-
; CHECK-NEXT: lsr w8, w8, #6
49-
; CHECK-NEXT: msub w9, w8, w9, w0
50-
; CHECK-NEXT: add w0, w9, w8
51-
; CHECK-NEXT: ret
49+
; CHECK-SD-LABEL: combine_urem_udiv:
50+
; CHECK-SD: // %bb.0:
51+
; CHECK-SD-NEXT: mov w8, #8969 // =0x2309
52+
; CHECK-SD-NEXT: movk w8, #22765, lsl #16
53+
; CHECK-SD-NEXT: umull x8, w0, w8
54+
; CHECK-SD-NEXT: lsr x8, x8, #32
55+
; CHECK-SD-NEXT: sub w9, w0, w8
56+
; CHECK-SD-NEXT: add w8, w8, w9, lsr #1
57+
; CHECK-SD-NEXT: mov w9, #95 // =0x5f
58+
; CHECK-SD-NEXT: lsr w8, w8, #6
59+
; CHECK-SD-NEXT: msub w9, w8, w9, w0
60+
; CHECK-SD-NEXT: add w0, w9, w8
61+
; CHECK-SD-NEXT: ret
62+
;
63+
; CHECK-GI-LABEL: combine_urem_udiv:
64+
; CHECK-GI: // %bb.0:
65+
; CHECK-GI-NEXT: mov w8, #95 // =0x5f
66+
; CHECK-GI-NEXT: udiv w9, w0, w8
67+
; CHECK-GI-NEXT: msub w8, w9, w8, w0
68+
; CHECK-GI-NEXT: add w0, w8, w9
69+
; CHECK-GI-NEXT: ret
5270
%1 = urem i32 %x, 95
5371
%2 = udiv i32 %x, 95
5472
%3 = add i32 %1, %2

0 commit comments

Comments
 (0)