77define i256 @f1 (i256 %a , i256 %sh ) {
88; CHECK-LABEL: f1:
99; CHECK: # %bb.0:
10- ; CHECK-NEXT: vl %v0, 0(%r3), 3
1110; CHECK-NEXT: vl %v1, 16(%r3), 3
11+ ; CHECK-NEXT: vl %v0, 0(%r3), 3
1212; CHECK-NEXT: l %r0, 28(%r4)
1313; CHECK-NEXT: clijhe %r0, 128, .LBB0_2
1414; CHECK-NEXT: # %bb.1:
15- ; CHECK-NEXT: lhi %r1, 128
16- ; CHECK-NEXT: sr %r1, %r0
17- ; CHECK-NEXT: vlvgp %v2, %r1, %r1
18- ; CHECK-NEXT: vrepb %v2, %v2, 15
19- ; CHECK-NEXT: vsrlb %v3, %v1, %v2
20- ; CHECK-NEXT: vsrl %v2, %v3, %v2
21- ; CHECK-NEXT: vlvgp %v3, %r0, %r0
22- ; CHECK-NEXT: vrepb %v3, %v3, 15
23- ; CHECK-NEXT: vslb %v4, %v0, %v3
15+ ; CHECK-NEXT: lr %r1, %r0
16+ ; CHECK-NEXT: xilf %r1, 4294967295
17+ ; CHECK-NEXT: vlvgp %v2, %r0, %r0
18+ ; CHECK-NEXT: vlvgp %v5, %r1, %r1
19+ ; CHECK-NEXT: vrepib %v4, 1
20+ ; CHECK-NEXT: vrepb %v3, %v2, 15
21+ ; CHECK-NEXT: vsrl %v4, %v1, %v4
22+ ; CHECK-NEXT: vrepb %v5, %v5, 15
23+ ; CHECK-NEXT: vslb %v2, %v0, %v3
24+ ; CHECK-NEXT: vsrlb %v4, %v4, %v5
2425; CHECK-NEXT: vslb %v1, %v1, %v3
25- ; CHECK-NEXT: vsl %v4, %v4, %v3
26- ; CHECK-NEXT: vo %v2, %v4, %v2
26+ ; CHECK-NEXT: vsl %v2, %v2, %v3
27+ ; CHECK-NEXT: vsrl %v4, %v4, %v5
28+ ; CHECK-NEXT: vo %v2, %v2, %v4
2729; CHECK-NEXT: vsl %v1, %v1, %v3
2830; CHECK-NEXT: cijlh %r0, 0, .LBB0_3
2931; CHECK-NEXT: j .LBB0_4
@@ -49,22 +51,24 @@ define i256 @f1(i256 %a, i256 %sh) {
4951define i256 @f2 (i256 %a , i256 %sh ) {
5052; CHECK-LABEL: f2:
5153; CHECK: # %bb.0:
52- ; CHECK-NEXT: vl %v0, 16(%r3), 3
5354; CHECK-NEXT: vl %v1, 0(%r3), 3
55+ ; CHECK-NEXT: vl %v0, 16(%r3), 3
5456; CHECK-NEXT: l %r0, 28(%r4)
5557; CHECK-NEXT: clijhe %r0, 128, .LBB1_2
5658; CHECK-NEXT: # %bb.1:
57- ; CHECK-NEXT: lhi %r1, 128
58- ; CHECK-NEXT: sr %r1, %r0
59- ; CHECK-NEXT: vlvgp %v2, %r1, %r1
60- ; CHECK-NEXT: vrepb %v2, %v2, 15
61- ; CHECK-NEXT: vslb %v3, %v1, %v2
62- ; CHECK-NEXT: vsl %v2, %v3, %v2
63- ; CHECK-NEXT: vlvgp %v3, %r0, %r0
64- ; CHECK-NEXT: vrepb %v3, %v3, 15
65- ; CHECK-NEXT: vsrlb %v4, %v0, %v3
59+ ; CHECK-NEXT: lr %r1, %r0
60+ ; CHECK-NEXT: xilf %r1, 4294967295
61+ ; CHECK-NEXT: vlvgp %v2, %r0, %r0
62+ ; CHECK-NEXT: vlvgp %v5, %r1, %r1
63+ ; CHECK-NEXT: vrepib %v4, 1
64+ ; CHECK-NEXT: vrepb %v3, %v2, 15
65+ ; CHECK-NEXT: vsl %v4, %v1, %v4
66+ ; CHECK-NEXT: vrepb %v5, %v5, 15
67+ ; CHECK-NEXT: vsrlb %v2, %v0, %v3
68+ ; CHECK-NEXT: vslb %v4, %v4, %v5
6669; CHECK-NEXT: vsrlb %v1, %v1, %v3
67- ; CHECK-NEXT: vsrl %v4, %v4, %v3
70+ ; CHECK-NEXT: vsrl %v2, %v2, %v3
71+ ; CHECK-NEXT: vsl %v4, %v4, %v5
6872; CHECK-NEXT: vo %v2, %v4, %v2
6973; CHECK-NEXT: vsrl %v1, %v1, %v3
7074; CHECK-NEXT: cijlh %r0, 0, .LBB1_3
@@ -92,23 +96,25 @@ define i256 @f3(i256 %a, i256 %sh) {
9296; CHECK-LABEL: f3:
9397; CHECK: # %bb.0:
9498; CHECK-NEXT: vl %v0, 16(%r3), 3
95- ; CHECK-NEXT: vl %v2, 0(%r3), 3
9699; CHECK-NEXT: l %r0, 28(%r4)
100+ ; CHECK-NEXT: vl %v2, 0(%r3), 3
97101; CHECK-NEXT: clijhe %r0, 128, .LBB2_2
98102; CHECK-NEXT: # %bb.1:
99- ; CHECK-NEXT: lhi %r1, 128
100- ; CHECK-NEXT: sr %r1, %r0
101103; CHECK-NEXT: vlvgp %v1, %r0, %r0
102- ; CHECK-NEXT: vlvgp %v4, %r1, %r1
103104; CHECK-NEXT: vrepb %v3, %v1, 15
104- ; CHECK-NEXT: vrepb %v4, %v4, 15
105105; CHECK-NEXT: vsrab %v1, %v2, %v3
106- ; CHECK-NEXT: vslb %v2, %v2, %v4
107- ; CHECK-NEXT: vsl %v2, %v2, %v4
108106; CHECK-NEXT: vsrlb %v4, %v0, %v3
109107; CHECK-NEXT: vsra %v1, %v1, %v3
108+ ; CHECK-NEXT: lr %r1, %r0
110109; CHECK-NEXT: vsrl %v3, %v4, %v3
111- ; CHECK-NEXT: vo %v2, %v3, %v2
110+ ; CHECK-NEXT: vrepib %v4, 1
111+ ; CHECK-NEXT: xilf %r1, 4294967295
112+ ; CHECK-NEXT: vsl %v2, %v2, %v4
113+ ; CHECK-NEXT: vlvgp %v4, %r1, %r1
114+ ; CHECK-NEXT: vrepb %v4, %v4, 15
115+ ; CHECK-NEXT: vslb %v2, %v2, %v4
116+ ; CHECK-NEXT: vsl %v2, %v2, %v4
117+ ; CHECK-NEXT: vo %v2, %v2, %v3
112118; CHECK-NEXT: cijlh %r0, 0, .LBB2_3
113119; CHECK-NEXT: j .LBB2_4
114120; CHECK-NEXT: .LBB2_2:
0 commit comments