@@ -35,18 +35,13 @@ define signext i32 @zeroEqualityTest02(ptr %x, ptr %y) {
35
35
define signext i32 @zeroEqualityTest01 (ptr %x , ptr %y ) {
36
36
; CHECK-LABEL: zeroEqualityTest01:
37
37
; CHECK: # %bb.0:
38
- ; CHECK-NEXT: ld 5, 0(3)
39
- ; CHECK-NEXT: ld 6, 0(4)
40
- ; CHECK-NEXT: cmpld 5, 6
41
- ; CHECK-NEXT: bne 0, .LBB1_2
42
- ; CHECK-NEXT: # %bb.1: # %loadbb1
43
- ; CHECK-NEXT: ld 5, 8(3)
44
- ; CHECK-NEXT: ld 4, 8(4)
45
- ; CHECK-NEXT: li 3, 0
46
- ; CHECK-NEXT: cmpld 5, 4
47
- ; CHECK-NEXT: beqlr 0
48
- ; CHECK-NEXT: .LBB1_2: # %res_block
49
- ; CHECK-NEXT: li 3, 1
38
+ ; CHECK-NEXT: lxvd2x 34, 0, 4
39
+ ; CHECK-NEXT: lxvd2x 35, 0, 3
40
+ ; CHECK-NEXT: vcmpequb. 2, 3, 2
41
+ ; CHECK-NEXT: mfocrf 3, 2
42
+ ; CHECK-NEXT: rlwinm 3, 3, 25, 31, 31
43
+ ; CHECK-NEXT: cntlzw 3, 3
44
+ ; CHECK-NEXT: srwi 3, 3, 5
50
45
; CHECK-NEXT: blr
51
46
%call = tail call signext i32 @memcmp (ptr %x , ptr %y , i64 16 )
52
47
%not.tobool = icmp ne i32 %call , 0
@@ -85,7 +80,7 @@ define signext i32 @zeroEqualityTest03(ptr %x, ptr %y) {
85
80
; Validate with > 0
86
81
define signext i32 @zeroEqualityTest04 () {
87
82
; CHECK-LABEL: zeroEqualityTest04:
88
- ; CHECK: # %bb.0: # %loadbb
83
+ ; CHECK: # %bb.0:
89
84
; CHECK-NEXT: li 3, 0
90
85
; CHECK-NEXT: blr
91
86
%call = tail call signext i32 @memcmp (ptr @zeroEqualityTest02.buffer1 , ptr @zeroEqualityTest02.buffer2 , i64 16 )
@@ -97,7 +92,7 @@ define signext i32 @zeroEqualityTest04() {
97
92
; Validate with < 0
98
93
define signext i32 @zeroEqualityTest05 () {
99
94
; CHECK-LABEL: zeroEqualityTest05:
100
- ; CHECK: # %bb.0: # %loadbb
95
+ ; CHECK: # %bb.0:
101
96
; CHECK-NEXT: li 3, 0
102
97
; CHECK-NEXT: blr
103
98
%call = tail call signext i32 @memcmp (ptr @zeroEqualityTest03.buffer1 , ptr @zeroEqualityTest03.buffer2 , i64 16 )
@@ -109,7 +104,7 @@ define signext i32 @zeroEqualityTest05() {
109
104
; Validate with memcmp()?:
110
105
define signext i32 @equalityFoldTwoConstants () {
111
106
; CHECK-LABEL: equalityFoldTwoConstants:
112
- ; CHECK: # %bb.0: # %loadbb
107
+ ; CHECK: # %bb.0:
113
108
; CHECK-NEXT: li 3, 1
114
109
; CHECK-NEXT: blr
115
110
%call = tail call signext i32 @memcmp (ptr @zeroEqualityTest04.buffer1 , ptr @zeroEqualityTest04.buffer2 , i64 16 )
@@ -122,23 +117,17 @@ define signext i32 @equalityFoldOneConstant(ptr %X) {
122
117
; CHECK-LABEL: equalityFoldOneConstant:
123
118
; CHECK: # %bb.0:
124
119
; CHECK-NEXT: li 5, 1
125
- ; CHECK-NEXT: ld 4, 0(3)
120
+ ; CHECK-NEXT: ld 4, 8(3)
121
+ ; CHECK-NEXT: ld 3, 0(3)
126
122
; CHECK-NEXT: rldic 5, 5, 32, 31
127
- ; CHECK-NEXT: cmpld 4, 5
128
- ; CHECK-NEXT: bne 0, .LBB6_2
129
- ; CHECK-NEXT: # %bb.1: # %loadbb1
123
+ ; CHECK-NEXT: xor 3, 3, 5
130
124
; CHECK-NEXT: lis 5, -32768
131
- ; CHECK-NEXT: ld 4, 8(3)
132
- ; CHECK-NEXT: li 3, 0
133
125
; CHECK-NEXT: ori 5, 5, 1
134
126
; CHECK-NEXT: rldic 5, 5, 1, 30
135
- ; CHECK-NEXT: cmpld 4, 5
136
- ; CHECK-NEXT: beq 0, .LBB6_3
137
- ; CHECK-NEXT: .LBB6_2: # %res_block
138
- ; CHECK-NEXT: li 3, 1
139
- ; CHECK-NEXT: .LBB6_3: # %endblock
140
- ; CHECK-NEXT: cntlzw 3, 3
141
- ; CHECK-NEXT: srwi 3, 3, 5
127
+ ; CHECK-NEXT: xor 4, 4, 5
128
+ ; CHECK-NEXT: or 3, 3, 4
129
+ ; CHECK-NEXT: cntlzd 3, 3
130
+ ; CHECK-NEXT: rldicl 3, 3, 58, 63
142
131
; CHECK-NEXT: blr
143
132
%call = tail call signext i32 @memcmp (ptr @zeroEqualityTest04.buffer1 , ptr %X , i64 16 )
144
133
%not.tobool = icmp eq i32 %call , 0
0 commit comments