Skip to content

Commit dd3ba72

Browse files
author
Kai Luo
committed
[PowerPC] Add tests for select patterns. NFC.
1 parent a2578e9 commit dd3ba72

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

llvm/test/CodeGen/PowerPC/select.ll

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2+
; RUN: llc -ppc-asm-full-reg-names -verify-machineinstrs \
3+
; RUN: -mtriple=powerpc64le-linux-gnu < %s | FileCheck \
4+
; RUN: -check-prefix=CHECK-LE %s
5+
6+
define i64 @f0(i64 %x) {
7+
; CHECK-LE-LABEL: f0:
8+
; CHECK-LE: # %bb.0:
9+
; CHECK-LE-NEXT: li r4, 125
10+
; CHECK-LE-NEXT: cmpdi r3, 0
11+
; CHECK-LE-NEXT: li r3, -3
12+
; CHECK-LE-NEXT: isellt r3, r3, r4
13+
; CHECK-LE-NEXT: blr
14+
%c = icmp slt i64 %x, 0
15+
%r = select i1 %c, i64 -3, i64 125
16+
ret i64 %r
17+
}
18+
19+
define i64 @f1(i64 %x) {
20+
; CHECK-LE-LABEL: f1:
21+
; CHECK-LE: # %bb.0:
22+
; CHECK-LE-NEXT: li r4, 512
23+
; CHECK-LE-NEXT: cmpdi r3, 0
24+
; CHECK-LE-NEXT: li r3, 64
25+
; CHECK-LE-NEXT: isellt r3, r3, r4
26+
; CHECK-LE-NEXT: blr
27+
%c = icmp slt i64 %x, 0
28+
%r = select i1 %c, i64 64, i64 512
29+
ret i64 %r
30+
}
31+
32+
define i64 @f2(i64 %x) {
33+
; CHECK-LE-LABEL: f2:
34+
; CHECK-LE: # %bb.0:
35+
; CHECK-LE-NEXT: li r4, 1024
36+
; CHECK-LE-NEXT: cmpdi r3, 0
37+
; CHECK-LE-NEXT: iseleq r3, 0, r4
38+
; CHECK-LE-NEXT: blr
39+
%c = icmp eq i64 %x, 0
40+
%r = select i1 %c, i64 0, i64 1024
41+
ret i64 %r
42+
}
43+
44+
define i64 @f3(i64 %x, i64 %y) {
45+
; CHECK-LE-LABEL: f3:
46+
; CHECK-LE: # %bb.0:
47+
; CHECK-LE-NEXT: cmpldi r3, 0
48+
; CHECK-LE-NEXT: iseleq r3, 0, r4
49+
; CHECK-LE-NEXT: blr
50+
%c = icmp eq i64 %x, 0
51+
%r = select i1 %c, i64 0, i64 %y
52+
ret i64 %r
53+
}
54+
55+
define i64 @f4(i64 %x) {
56+
; CHECK-LE-LABEL: f4:
57+
; CHECK-LE: # %bb.0:
58+
; CHECK-LE-NEXT: neg r4, r3
59+
; CHECK-LE-NEXT: cmpdi r3, 0
60+
; CHECK-LE-NEXT: iselgt r3, r4, r3
61+
; CHECK-LE-NEXT: blr
62+
%c = icmp sgt i64 %x, 0
63+
%x.neg = sub i64 0, %x
64+
%r = select i1 %c, i64 %x.neg, i64 %x
65+
ret i64 %r
66+
}

0 commit comments

Comments
 (0)