Skip to content

Commit 1c19900

Browse files
author
Kai Luo
committed
[PowerPC] Add RUN line for powerpc 32-bit. NFC.
1 parent a4f35ab commit 1c19900

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

llvm/test/CodeGen/PowerPC/select.ll

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
; RUN: llc -ppc-asm-full-reg-names -verify-machineinstrs \
33
; RUN: -mtriple=powerpc64le-linux-gnu < %s | FileCheck \
44
; RUN: -check-prefix=CHECK-LE %s
5+
; RUN: llc -ppc-asm-full-reg-names -verify-machineinstrs \
6+
; RUN: -mtriple=powerpc-linux-gnu < %s | FileCheck \
7+
; RUN: -check-prefix=CHECK-32 %s
58

69
define i64 @f0(i64 %x) {
710
; CHECK-LE-LABEL: f0:
@@ -11,6 +14,19 @@ define i64 @f0(i64 %x) {
1114
; CHECK-LE-NEXT: li r3, -3
1215
; CHECK-LE-NEXT: isellt r3, r3, r4
1316
; CHECK-LE-NEXT: blr
17+
;
18+
; CHECK-32-LABEL: f0:
19+
; CHECK-32: # %bb.0:
20+
; CHECK-32-NEXT: li r4, 125
21+
; CHECK-32-NEXT: li r5, -3
22+
; CHECK-32-NEXT: cmpwi r3, 0
23+
; CHECK-32-NEXT: bc 12, lt, .LBB0_1
24+
; CHECK-32-NEXT: b .LBB0_2
25+
; CHECK-32-NEXT: .LBB0_1:
26+
; CHECK-32-NEXT: addi r4, r5, 0
27+
; CHECK-32-NEXT: .LBB0_2:
28+
; CHECK-32-NEXT: srawi r3, r3, 31
29+
; CHECK-32-NEXT: blr
1430
%c = icmp slt i64 %x, 0
1531
%r = select i1 %c, i64 -3, i64 125
1632
ret i64 %r
@@ -24,6 +40,19 @@ define i64 @f1(i64 %x) {
2440
; CHECK-LE-NEXT: li r3, 64
2541
; CHECK-LE-NEXT: isellt r3, r3, r4
2642
; CHECK-LE-NEXT: blr
43+
;
44+
; CHECK-32-LABEL: f1:
45+
; CHECK-32: # %bb.0:
46+
; CHECK-32-NEXT: li r4, 512
47+
; CHECK-32-NEXT: cmpwi r3, 0
48+
; CHECK-32-NEXT: li r3, 64
49+
; CHECK-32-NEXT: bc 12, lt, .LBB1_1
50+
; CHECK-32-NEXT: b .LBB1_2
51+
; CHECK-32-NEXT: .LBB1_1:
52+
; CHECK-32-NEXT: addi r4, r3, 0
53+
; CHECK-32-NEXT: .LBB1_2:
54+
; CHECK-32-NEXT: li r3, 0
55+
; CHECK-32-NEXT: blr
2756
%c = icmp slt i64 %x, 0
2857
%r = select i1 %c, i64 64, i64 512
2958
ret i64 %r
@@ -36,6 +65,20 @@ define i64 @f2(i64 %x) {
3665
; CHECK-LE-NEXT: cmpdi r3, 0
3766
; CHECK-LE-NEXT: iseleq r3, 0, r4
3867
; CHECK-LE-NEXT: blr
68+
;
69+
; CHECK-32-LABEL: f2:
70+
; CHECK-32: # %bb.0:
71+
; CHECK-32-NEXT: or. r3, r4, r3
72+
; CHECK-32-NEXT: li r3, 1024
73+
; CHECK-32-NEXT: bc 12, eq, .LBB2_2
74+
; CHECK-32-NEXT: # %bb.1:
75+
; CHECK-32-NEXT: ori r4, r3, 0
76+
; CHECK-32-NEXT: b .LBB2_3
77+
; CHECK-32-NEXT: .LBB2_2:
78+
; CHECK-32-NEXT: li r4, 0
79+
; CHECK-32-NEXT: .LBB2_3:
80+
; CHECK-32-NEXT: li r3, 0
81+
; CHECK-32-NEXT: blr
3982
%c = icmp eq i64 %x, 0
4083
%r = select i1 %c, i64 0, i64 1024
4184
ret i64 %r
@@ -47,6 +90,19 @@ define i64 @f3(i64 %x, i64 %y) {
4790
; CHECK-LE-NEXT: cmpldi r3, 0
4891
; CHECK-LE-NEXT: iseleq r3, 0, r4
4992
; CHECK-LE-NEXT: blr
93+
;
94+
; CHECK-32-LABEL: f3:
95+
; CHECK-32: # %bb.0:
96+
; CHECK-32-NEXT: or. r3, r4, r3
97+
; CHECK-32-NEXT: bc 12, eq, .LBB3_2
98+
; CHECK-32-NEXT: # %bb.1:
99+
; CHECK-32-NEXT: ori r3, r5, 0
100+
; CHECK-32-NEXT: ori r4, r6, 0
101+
; CHECK-32-NEXT: blr
102+
; CHECK-32-NEXT: .LBB3_2:
103+
; CHECK-32-NEXT: li r3, 0
104+
; CHECK-32-NEXT: li r4, 0
105+
; CHECK-32-NEXT: blr
50106
%c = icmp eq i64 %x, 0
51107
%r = select i1 %c, i64 0, i64 %y
52108
ret i64 %r
@@ -59,6 +115,23 @@ define i64 @f4(i64 %x) {
59115
; CHECK-LE-NEXT: cmpdi r3, 0
60116
; CHECK-LE-NEXT: iselgt r3, r4, r3
61117
; CHECK-LE-NEXT: blr
118+
;
119+
; CHECK-32-LABEL: f4:
120+
; CHECK-32: # %bb.0:
121+
; CHECK-32-NEXT: cmplwi r3, 0
122+
; CHECK-32-NEXT: cmpwi cr1, r3, 0
123+
; CHECK-32-NEXT: crandc 4*cr5+lt, 4*cr1+gt, eq
124+
; CHECK-32-NEXT: cmpwi cr1, r4, 0
125+
; CHECK-32-NEXT: subfic r5, r4, 0
126+
; CHECK-32-NEXT: crandc 4*cr5+gt, eq, 4*cr1+eq
127+
; CHECK-32-NEXT: cror 4*cr5+lt, 4*cr5+gt, 4*cr5+lt
128+
; CHECK-32-NEXT: subfze r6, r3
129+
; CHECK-32-NEXT: bc 12, 4*cr5+lt, .LBB4_1
130+
; CHECK-32-NEXT: blr
131+
; CHECK-32-NEXT: .LBB4_1:
132+
; CHECK-32-NEXT: addi r3, r6, 0
133+
; CHECK-32-NEXT: addi r4, r5, 0
134+
; CHECK-32-NEXT: blr
62135
%c = icmp sgt i64 %x, 0
63136
%x.neg = sub i64 0, %x
64137
%r = select i1 %c, i64 %x.neg, i64 %x

0 commit comments

Comments
 (0)