@@ -9,8 +9,8 @@ define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
9
9
; CHECK: [[LABEL:\.[^:]*]]:
10
10
; CHECK: lgr %r0, %r2
11
11
; CHECK: ngr %r0, %r4
12
- ; CHECK: xihf %r0, 4294967295
13
- ; CHECK: xilf %r0, 4294967295
12
+ ; CHECK: lcgr %r0, %r0
13
+ ; CHECK: aghi %r0, -1
14
14
; CHECK: csg %r2, %r0, 0(%r3)
15
15
; CHECK: jl [[LABEL]]
16
16
; CHECK: br %r14
@@ -21,8 +21,8 @@ define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
21
21
; Check NANDs of 1, which are done using a register.
22
22
define i64 @f2 (i64 %dummy , ptr %src ) {
23
23
; CHECK-LABEL: f2:
24
- ; CHECK: xihf %r0, 4294967295
25
- ; CHECK: xilf %r0, 4294967295
24
+ ; CHECK: lcgr %r0, %r2
25
+ ; CHECK: aghi %r0, -1
26
26
; CHECK: oihf %r0, 4294967295
27
27
; CHECK: oilf %r0, 4294967294
28
28
; CHECK: br %r14
@@ -34,8 +34,8 @@ define i64 @f3(i64 %dummy, ptr %src) {
34
34
; CHECK-LABEL: f3:
35
35
; CHECK: lg %r2, 0(%r3)
36
36
; CHECK: [[LABEL:\.[^:]*]]:
37
- ; CHECK: xihf %r0, 4294967295
38
- ; CHECK: xilf %r0, 4294967295
37
+ ; CHECK: lcgr %r0, %r2
38
+ ; CHECK: aghi %r0, -1
39
39
; CHECK: oihf %r0, 4294967294
40
40
; CHECK: jl [[LABEL]]
41
41
; CHECK: br %r14
@@ -47,9 +47,8 @@ define i64 @f4(i64 %dummy, ptr %src) {
47
47
; CHECK-LABEL: f4:
48
48
; CHECK: lg %r2, 0(%r3)
49
49
; CHECK: [[LABEL:\.[^:]*]]:
50
- ; CHECK: lgr %r0, %r2
51
- ; CHECK: xihf %r0, 4294967295
52
- ; CHECK: xilf %r0, 4294967295
50
+ ; CHECK: lcgr %r0, %r2
51
+ ; CHECK: aghi %r0, -1
53
52
; CHECK: oihf %r0, 4294967293
54
53
; CHECK: csg %r2, %r0, 0(%r3)
55
54
; CHECK: jl [[LABEL]]
@@ -60,8 +59,8 @@ define i64 @f4(i64 %dummy, ptr %src) {
60
59
61
60
define i64 @f5 (i64 %dummy , ptr %src ) {
62
61
; CHECK-LABEL: f5:
63
- ; CHECK: xihf %r0, 4294967295
64
- ; CHECK: xilf %r0, 4294967295
62
+ ; CHECK: lcgr %r0, %r2
63
+ ; CHECK: aghi %r0, -1
65
64
; CHECK: oihf %r0, 4294967292
66
65
; CHECK: oilf %r0, 4294967295
67
66
; CHECK: br %r14
@@ -71,8 +70,8 @@ define i64 @f5(i64 %dummy, ptr %src) {
71
70
72
71
define i64 @f6 (i64 %dummy , ptr %src ) {
73
72
; CHECK-LABEL: f6:
74
- ; CHECK: xihf %r0, 4294967295
75
- ; CHECK: xilf %r0, 4294967295
73
+ ; CHECK: lcgr %r0, %r2
74
+ ; CHECK: aghi %r0, -1
76
75
; CHECK: oihh %r0, 65533
77
76
; CHECK: br %r14
78
77
%res = atomicrmw nand ptr %src , i64 844424930131967 seq_cst
@@ -81,8 +80,8 @@ define i64 @f6(i64 %dummy, ptr %src) {
81
80
82
81
define i64 @f7 (i64 %dummy , ptr %src ) {
83
82
; CHECK-LABEL: f7:
84
- ; CHECK: xihf %r0, 4294967295
85
- ; CHECK: xilf %r0, 4294967295
83
+ ; CHECK: lcgr %r0, %r2
84
+ ; CHECK: aghi %r0, -1
86
85
; CHECK: oihf %r0, 4294901759
87
86
; CHECK: oilf %r0, 4294967295
88
87
; CHECK: br %r14
@@ -92,8 +91,8 @@ define i64 @f7(i64 %dummy, ptr %src) {
92
91
93
92
define i64 @f8 (i64 %dummy , ptr %src ) {
94
93
; CHECK-LABEL: f8:
95
- ; CHECK: xihf %r0, 4294967295
96
- ; CHECK: xilf %r0, 4294967295
94
+ ; CHECK: lcgr %r0, %r2
95
+ ; CHECK: aghi %r0, -1
97
96
; CHECK: oill %r0, 5
98
97
; CHECK: br %r14
99
98
%res = atomicrmw nand ptr %src , i64 -6 seq_cst
@@ -102,8 +101,8 @@ define i64 @f8(i64 %dummy, ptr %src) {
102
101
103
102
define i64 @f9 (i64 %dummy , ptr %src ) {
104
103
; CHECK-LABEL: f9:
105
- ; CHECK: xihf %r0, 4294967295
106
- ; CHECK: xilf %r0, 4294967295
104
+ ; CHECK: lcgr %r0, %r2
105
+ ; CHECK: aghi %r0, -1
107
106
; CHECK: oill %r0, 65533
108
107
; CHECK: br %r14
109
108
%res = atomicrmw nand ptr %src , i64 -65534 seq_cst
@@ -112,8 +111,8 @@ define i64 @f9(i64 %dummy, ptr %src) {
112
111
113
112
define i64 @f10 (i64 %dummy , ptr %src ) {
114
113
; CHECK-LABEL: f10:
115
- ; CHECK: xihf %r0, 4294967295
116
- ; CHECK: xilf %r0, 4294967295
114
+ ; CHECK: lcgr %r0, %r2
115
+ ; CHECK: aghi %r0, -1
117
116
; CHECK: oilf %r0, 65537
118
117
; CHECK: br %r14
119
118
%res = atomicrmw nand ptr %src , i64 -65538 seq_cst
@@ -122,8 +121,8 @@ define i64 @f10(i64 %dummy, ptr %src) {
122
121
123
122
define i64 @f11 (i64 %dummy , ptr %src ) {
124
123
; CHECK-LABEL: f11:
125
- ; CHECK: xihf %r0, 4294967295
126
- ; CHECK: xilf %r0, 4294967295
124
+ ; CHECK: lcgr %r0, %r2
125
+ ; CHECK: aghi %r0, -1
127
126
; CHECK: oilh %r0, 5
128
127
; CHECK: br %r14
129
128
%res = atomicrmw nand ptr %src , i64 -327681 seq_cst
@@ -132,8 +131,8 @@ define i64 @f11(i64 %dummy, ptr %src) {
132
131
133
132
define i64 @f12 (i64 %dummy , ptr %src ) {
134
133
; CHECK-LABEL: f12:
135
- ; CHECK: xihf %r0, 4294967295
136
- ; CHECK: xilf %r0, 4294967295
134
+ ; CHECK: lcgr %r0, %r2
135
+ ; CHECK: aghi %r0, -1
137
136
; CHECK: oilh %r0, 65533
138
137
; CHECK: br %r14
139
138
%res = atomicrmw nand ptr %src , i64 -4294770689 seq_cst
@@ -142,8 +141,8 @@ define i64 @f12(i64 %dummy, ptr %src) {
142
141
143
142
define i64 @f13 (i64 %dummy , ptr %src ) {
144
143
; CHECK-LABEL: f13:
145
- ; CHECK: xihf %r0, 4294967295
146
- ; CHECK: xilf %r0, 4294967295
144
+ ; CHECK: lcgr %r0, %r2
145
+ ; CHECK: aghi %r0, -1
147
146
; CHECK: oilf %r0, 4294967293
148
147
; CHECK: br %r14
149
148
%res = atomicrmw nand ptr %src , i64 -4294967294 seq_cst
@@ -152,8 +151,8 @@ define i64 @f13(i64 %dummy, ptr %src) {
152
151
153
152
define i64 @f14 (i64 %dummy , ptr %src ) {
154
153
; CHECK-LABEL: f14:
155
- ; CHECK: xihf %r0, 4294967295
156
- ; CHECK: xilf %r0, 4294967295
154
+ ; CHECK: lcgr %r0, %r2
155
+ ; CHECK: aghi %r0, -1
157
156
; CHECK: oihl %r0, 5
158
157
; CHECK: br %r14
159
158
%res = atomicrmw nand ptr %src , i64 -21474836481 seq_cst
@@ -162,8 +161,8 @@ define i64 @f14(i64 %dummy, ptr %src) {
162
161
163
162
define i64 @f15 (i64 %dummy , ptr %src ) {
164
163
; CHECK-LABEL: f15:
165
- ; CHECK: xihf %r0, 4294967295
166
- ; CHECK: xilf %r0, 4294967295
164
+ ; CHECK: lcgr %r0, %r2
165
+ ; CHECK: aghi %r0, -1
167
166
; CHECK: oihl %r0, 65533
168
167
; CHECK: br %r14
169
168
%res = atomicrmw nand ptr %src , i64 -281462091808769 seq_cst
@@ -172,8 +171,8 @@ define i64 @f15(i64 %dummy, ptr %src) {
172
171
173
172
define i64 @f16 (i64 %dummy , ptr %src ) {
174
173
; CHECK-LABEL: f16:
175
- ; CHECK: xihf %r0, 4294967295
176
- ; CHECK: xilf %r0, 4294967295
174
+ ; CHECK: lcgr %r0, %r2
175
+ ; CHECK: aghi %r0, -1
177
176
; CHECK: oihh %r0, 5
178
177
; CHECK: br %r14
179
178
%res = atomicrmw nand ptr %src , i64 -1407374883553281 seq_cst
@@ -182,8 +181,8 @@ define i64 @f16(i64 %dummy, ptr %src) {
182
181
183
182
define i64 @f17 (i64 %dummy , ptr %src ) {
184
183
; CHECK-LABEL: f17:
185
- ; CHECK: xihf %r0, 4294967295
186
- ; CHECK: xilf %r0, 4294967295
184
+ ; CHECK: lcgr %r0, %r2
185
+ ; CHECK: aghi %r0, -1
187
186
; CHECK: oihf %r0, 65537
188
187
; CHECK: br %r14
189
188
%res = atomicrmw nand ptr %src , i64 -281479271677953 seq_cst
0 commit comments