Skip to content

Commit 27bae82

Browse files
committed
address comment
1 parent 86808cc commit 27bae82

File tree

1 file changed

+65
-100
lines changed

1 file changed

+65
-100
lines changed

llvm/test/CodeGen/PowerPC/ppc_reduce_cr_logicals.ll

Lines changed: 65 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -2,123 +2,88 @@
22
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-gnu-linux < %s | FileCheck %s -check-prefix=CHECK
33
; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-gnu-linux < %s | FileCheck %s -check-prefix=CHECKBE
44

5-
define ptr @xe_migrate_copy(i1 %tobool, i1 %tobool6) {
5+
define i32 @xe_migrate_copy(ptr %m, ptr %dst, ptr %tile, ptr %0, ptr %primary_gt, i1 %tobool4, i1 %tobool9, i64 %1, i32 %conv55, i1 %tobool37.not) nounwind {
66
; CHECK-LABEL: xe_migrate_copy:
77
; CHECK: # %bb.0: # %entry
8-
; CHECK-NEXT: mfcr 12
9-
; CHECK-NEXT: stw 12, 8(1)
108
; CHECK-NEXT: mflr 0
11-
; CHECK-NEXT: stdu 1, -176(1)
12-
; CHECK-NEXT: std 0, 192(1)
13-
; CHECK-NEXT: .cfi_def_cfa_offset 176
14-
; CHECK-NEXT: .cfi_offset lr, 16
15-
; CHECK-NEXT: .cfi_offset r27, -40
16-
; CHECK-NEXT: .cfi_offset r28, -32
17-
; CHECK-NEXT: .cfi_offset r29, -24
18-
; CHECK-NEXT: .cfi_offset r30, -16
19-
; CHECK-NEXT: .cfi_offset cr2, 8
20-
; CHECK-NEXT: std 27, 136(1) # 8-byte Folded Spill
21-
; CHECK-NEXT: andi. 4, 4, 1
22-
; CHECK-NEXT: crmove 8, 1
9+
; CHECK-NEXT: stdu 1, -128(1)
10+
; CHECK-NEXT: lbz 3, 255(1)
2311
; CHECK-NEXT: andi. 3, 3, 1
24-
; CHECK-NEXT: std 28, 144(1) # 8-byte Folded Spill
25-
; CHECK-NEXT: crmove 9, 1
26-
; CHECK-NEXT: std 29, 152(1) # 8-byte Folded Spill
27-
; CHECK-NEXT: std 30, 160(1) # 8-byte Folded Spill
28-
; CHECK-NEXT: lwz 30, 132(1)
29-
; CHECK-NEXT: ld 28, 8(0)
30-
; CHECK-NEXT: ld 29, 16(0)
31-
; CHECK-NEXT: ld 27, 0(0)
32-
; CHECK-NEXT: std 2, 40(1)
33-
; CHECK-NEXT: b .LBB0_3
34-
; CHECK-NEXT: .LBB0_1: # %if.then36
35-
; CHECK-NEXT: #
36-
; CHECK-NEXT: li 6, 1
37-
; CHECK-NEXT: .LBB0_2: # %if.then36
38-
; CHECK-NEXT: #
39-
; CHECK-NEXT: mtctr 27
12+
; CHECK-NEXT: std 0, 144(1)
13+
; CHECK-NEXT: crmove 20, 1
14+
; CHECK-NEXT: andi. 3, 9, 1
15+
; CHECK-NEXT: lwz 9, 244(1)
16+
; CHECK-NEXT: crmove 21, 1
17+
; CHECK-NEXT: andi. 3, 8, 1
18+
; CHECK-NEXT: li 3, 0
19+
; CHECK-NEXT: std 3, 112(1)
20+
; CHECK-NEXT: crandc 21, 21, 20
21+
; CHECK-NEXT: bc 12, 21, .LBB0_2
22+
; CHECK-NEXT: # %bb.1: # %while.body
23+
; CHECK-NEXT: crand 20, 20, 1
24+
; CHECK-NEXT: li 8, 0
25+
; CHECK-NEXT: bc 4, 20, .LBB0_3
26+
; CHECK-NEXT: .LBB0_2: # %while.body
27+
; CHECK-NEXT: li 8, 1
28+
; CHECK-NEXT: .LBB0_3: # %while.body
4029
; CHECK-NEXT: li 4, 0
4130
; CHECK-NEXT: li 5, 0
31+
; CHECK-NEXT: li 6, 0
4232
; CHECK-NEXT: li 7, 0
43-
; CHECK-NEXT: li 8, 0
44-
; CHECK-NEXT: mr 9, 30
4533
; CHECK-NEXT: li 10, 0
46-
; CHECK-NEXT: mr 2, 28
47-
; CHECK-NEXT: mr 11, 29
48-
; CHECK-NEXT: bctrl
49-
; CHECK-NEXT: ld 2, 40(1)
50-
; CHECK-NEXT: .LBB0_3: # %if.then36
51-
; CHECK-NEXT: #
52-
; CHECK-NEXT: lwz 3, 0(0)
53-
; CHECK-NEXT: cmplwi 3, 0
54-
; CHECK-NEXT: li 3, 0
55-
; CHECK-NEXT: crandc 20, 8, 2
56-
; CHECK-NEXT: std 3, 112(1)
57-
; CHECK-NEXT: bc 12, 20, .LBB0_1
58-
; CHECK-NEXT: # %bb.4: # %if.then36
59-
; CHECK-NEXT: #
60-
; CHECK-NEXT: crand 20, 2, 9
61-
; CHECK-NEXT: li 6, 0
62-
; CHECK-NEXT: bc 4, 20, .LBB0_2
63-
; CHECK-NEXT: b .LBB0_1
34+
; CHECK-NEXT: bl xe_migrate_ccs_copy
35+
; CHECK-NEXT: nop
36+
; CHECK-NEXT: addi 1, 1, 128
37+
; CHECK-NEXT: ld 0, 16(1)
38+
; CHECK-NEXT: mtlr 0
39+
; CHECK-NEXT: blr
6440
;
6541
; CHECKBE-LABEL: xe_migrate_copy:
6642
; CHECKBE: # %bb.0: # %entry
6743
; CHECKBE-NEXT: mflr 0
68-
; CHECKBE-NEXT: stwu 1, -64(1)
69-
; CHECKBE-NEXT: stw 0, 68(1)
70-
; CHECKBE-NEXT: .cfi_def_cfa_offset 64
71-
; CHECKBE-NEXT: .cfi_offset lr, 4
72-
; CHECKBE-NEXT: .cfi_offset r30, -8
73-
; CHECKBE-NEXT: .cfi_offset cr2, -12
74-
; CHECKBE-NEXT: mfcr 12
75-
; CHECKBE-NEXT: stw 30, 56(1) # 4-byte Folded Spill
76-
; CHECKBE-NEXT: andi. 4, 4, 1
77-
; CHECKBE-NEXT: stw 12, 52(1)
78-
; CHECKBE-NEXT: crmove 8, 1
79-
; CHECKBE-NEXT: lwz 30, 44(1)
80-
; CHECKBE-NEXT: andi. 3, 3, 1
81-
; CHECKBE-NEXT: crmove 9, 1
82-
; CHECKBE-NEXT: b .LBB0_3
83-
; CHECKBE-NEXT: .LBB0_1: # %if.then36
84-
; CHECKBE-NEXT: #
85-
; CHECKBE-NEXT: li 7, 1
86-
; CHECKBE-NEXT: .LBB0_2: # %if.then36
87-
; CHECKBE-NEXT: #
44+
; CHECKBE-NEXT: stwu 1, -32(1)
45+
; CHECKBE-NEXT: lbz 3, 55(1)
8846
; CHECKBE-NEXT: li 4, 0
47+
; CHECKBE-NEXT: stw 0, 36(1)
48+
; CHECKBE-NEXT: andi. 3, 3, 1
49+
; CHECKBE-NEXT: crmove 20, 1
50+
; CHECKBE-NEXT: andi. 3, 9, 1
51+
; CHECKBE-NEXT: crmove 21, 1
52+
; CHECKBE-NEXT: andi. 3, 8, 1
53+
; CHECKBE-NEXT: lwz 3, 48(1)
54+
; CHECKBE-NEXT: crandc 21, 21, 20
55+
; CHECKBE-NEXT: stw 4, 24(1)
56+
; CHECKBE-NEXT: stw 4, 20(1)
57+
; CHECKBE-NEXT: stw 4, 16(1)
58+
; CHECKBE-NEXT: stw 3, 12(1)
59+
; CHECKBE-NEXT: bc 12, 21, .LBB0_2
60+
; CHECKBE-NEXT: # %bb.1: # %while.body
61+
; CHECKBE-NEXT: crand 20, 20, 1
62+
; CHECKBE-NEXT: li 8, 0
63+
; CHECKBE-NEXT: bc 4, 20, .LBB0_3
64+
; CHECKBE-NEXT: .LBB0_2: # %while.body
65+
; CHECKBE-NEXT: li 8, 1
66+
; CHECKBE-NEXT: .LBB0_3: # %while.body
67+
; CHECKBE-NEXT: li 3, 0
8968
; CHECKBE-NEXT: li 5, 0
9069
; CHECKBE-NEXT: li 6, 0
70+
; CHECKBE-NEXT: li 7, 0
9171
; CHECKBE-NEXT: li 9, 0
9272
; CHECKBE-NEXT: li 10, 0
93-
; CHECKBE-NEXT: bla 0x0
94-
; CHECKBE-NEXT: .LBB0_3: # %if.then36
95-
; CHECKBE-NEXT: #
96-
; CHECKBE-NEXT: lwz 3, 0(0)
97-
; CHECKBE-NEXT: stw 30, 12(1)
98-
; CHECKBE-NEXT: cmplwi 3, 0
99-
; CHECKBE-NEXT: crandc 20, 8, 2
100-
; CHECKBE-NEXT: li 3, 0
101-
; CHECKBE-NEXT: stw 3, 24(1)
102-
; CHECKBE-NEXT: stw 3, 20(1)
103-
; CHECKBE-NEXT: stw 3, 16(1)
104-
; CHECKBE-NEXT: stw 3, 8(1)
105-
; CHECKBE-NEXT: bc 12, 20, .LBB0_1
106-
; CHECKBE-NEXT: # %bb.4: # %if.then36
107-
; CHECKBE-NEXT: #
108-
; CHECKBE-NEXT: crand 20, 2, 9
109-
; CHECKBE-NEXT: li 7, 0
110-
; CHECKBE-NEXT: bc 4, 20, .LBB0_2
111-
; CHECKBE-NEXT: b .LBB0_1
73+
; CHECKBE-NEXT: stw 8, 8(1)
74+
; CHECKBE-NEXT: bl xe_migrate_ccs_copy
75+
; CHECKBE-NEXT: lwz 0, 36(1)
76+
; CHECKBE-NEXT: addi 1, 1, 32
77+
; CHECKBE-NEXT: mtlr 0
78+
; CHECKBE-NEXT: blr
79+
11280
entry:
113-
%src_L0 = alloca i64, align 8
114-
br label %if.then36
81+
br label %while.body
11582

116-
if.then36: ; preds = %if.then36, %entry
117-
%0 = load i32, ptr null, align 4
118-
%tobool37.not = icmp eq i32 %0, 0
119-
%tobool.tobool6 = select i1 %tobool37.not, i1 %tobool, i1 %tobool6
120-
%1 = load i64, ptr %src_L0, align 8
121-
%conv55 = trunc i64 %1 to i32
122-
%call57 = call i32 null(ptr null, ptr null, i64 0, i1 %tobool.tobool6, i64 0, i1 false, i32 %conv55, i64 0, i1 false)
123-
br label %if.then36
83+
while.body:
84+
%cond53.in = select i1 %tobool37.not, i1 %tobool4, i1 %tobool9
85+
%call57 = call zeroext i32 @xe_migrate_ccs_copy(ptr noundef null, ptr noundef null, i64 0, i1 false, i64 0, i1 %cond53.in, i32 %conv55, i64 0, i1 false)
86+
ret i32 %call57
12487
}
88+
89+
declare i32 @xe_migrate_ccs_copy(ptr, ptr, i64, i1, i64, i1, i32, i64, i1)

0 commit comments

Comments
 (0)