@@ -1181,78 +1181,95 @@ entry:
1181
1181
1182
1182
declare void @test_stackarg_float3 (i32 , i32 , i32 , i32 , i32 , i32 , i32 , ...)
1183
1183
1184
- define i64 @test_ints_stack (i32 %i1 , i32 %i2 , i32 %i3 , i32 %i4 , i32 %i5 , i32 %i6 , i32 %i7 , i32 %i8 , i64 %ll9 , i16 signext %s10 , i8 zeroext %c11 , i32 %ui12 , i32 %si13 , i64 %ll14 , i8 zeroext %uc15 , i32 %i16 ) {
1184
+ define i64 @test_ints_stack (i32 %i1 , i32 %i2 , i32 %i3 , i32 %i4 , i32 %i5 , i32 %i6 , i32 %i7 , i32 %i8 , i64 %ll9 , i16 signext %s10 , i8 zeroext %c11 , i32 %ui12 , i32 %si13 , i64 %ll14 , i8 zeroext %uc15 , i32 %i16 , i8 signext %si8 , i1 zeroext %zi1 ) {
1185
1185
; ASM32PWR4-LABEL: test_ints_stack:
1186
1186
; ASM32PWR4: # %bb.0: # %entry
1187
1187
; ASM32PWR4-NEXT: add 3, 3, 4
1188
- ; ASM32PWR4-NEXT: lwz 11, 92 (1)
1188
+ ; ASM32PWR4-NEXT: stw 31, -4 (1) # 4-byte Folded Spill
1189
1189
; ASM32PWR4-NEXT: add 3, 3, 5
1190
1190
; ASM32PWR4-NEXT: add 3, 3, 6
1191
1191
; ASM32PWR4-NEXT: add 3, 3, 7
1192
- ; ASM32PWR4-NEXT: lwz 12, 76 (1)
1192
+ ; ASM32PWR4-NEXT: lbz 12, 99 (1)
1193
1193
; ASM32PWR4-NEXT: add 3, 3, 8
1194
1194
; ASM32PWR4-NEXT: add 3, 3, 9
1195
- ; ASM32PWR4-NEXT: lwz 6, 60 (1)
1195
+ ; ASM32PWR4-NEXT: lwz 0, 92 (1)
1196
1196
; ASM32PWR4-NEXT: add 3, 3, 10
1197
- ; ASM32PWR4-NEXT: srawi 5, 11, 31
1197
+ ; ASM32PWR4-NEXT: extsb 4, 12
1198
1198
; ASM32PWR4-NEXT: srawi 8, 3, 31
1199
- ; ASM32PWR4-NEXT: lwz 4, 64(1)
1199
+ ; ASM32PWR4-NEXT: lwz 31, 76(1)
1200
+ ; ASM32PWR4-NEXT: srawi 12, 0, 31
1201
+ ; ASM32PWR4-NEXT: lwz 6, 60(1)
1202
+ ; ASM32PWR4-NEXT: lha 11, 66(1)
1200
1203
; ASM32PWR4-NEXT: lwz 7, 56(1)
1201
- ; ASM32PWR4-NEXT: stw 31 , -4 (1) # 4-byte Folded Spill
1202
- ; ASM32PWR4-NEXT: srawi 31, 12 , 31
1204
+ ; ASM32PWR4-NEXT: stw 30 , -8 (1) # 4-byte Folded Spill
1205
+ ; ASM32PWR4-NEXT: srawi 30, 31 , 31
1203
1206
; ASM32PWR4-NEXT: addc 3, 3, 6
1204
1207
; ASM32PWR4-NEXT: adde 7, 8, 7
1205
- ; ASM32PWR4-NEXT: lwz 6, 68 (1)
1206
- ; ASM32PWR4-NEXT: srawi 8, 4 , 31
1207
- ; ASM32PWR4-NEXT: addc 3, 3, 4
1208
+ ; ASM32PWR4-NEXT: lbz 6, 71 (1)
1209
+ ; ASM32PWR4-NEXT: srawi 8, 11 , 31
1210
+ ; ASM32PWR4-NEXT: addc 3, 3, 11
1208
1211
; ASM32PWR4-NEXT: adde 7, 7, 8
1209
- ; ASM32PWR4-NEXT: lwz 4 , 72(1)
1212
+ ; ASM32PWR4-NEXT: lwz 9 , 72(1)
1210
1213
; ASM32PWR4-NEXT: addc 3, 3, 6
1211
1214
; ASM32PWR4-NEXT: addze 6, 7
1212
- ; ASM32PWR4-NEXT: addc 3, 3, 4
1213
- ; ASM32PWR4-NEXT: lwz 0 , 84(1)
1214
- ; ASM32PWR4-NEXT: addze 4 , 6
1215
- ; ASM32PWR4-NEXT: addc 3, 3, 12
1215
+ ; ASM32PWR4-NEXT: addc 3, 3, 9
1216
+ ; ASM32PWR4-NEXT: lwz 5 , 84(1)
1217
+ ; ASM32PWR4-NEXT: addze 6 , 6
1218
+ ; ASM32PWR4-NEXT: addc 3, 3, 31
1216
1219
; ASM32PWR4-NEXT: lwz 7, 80(1)
1217
- ; ASM32PWR4-NEXT: adde 4, 4, 31
1220
+ ; ASM32PWR4-NEXT: adde 6, 6, 30
1221
+ ; ASM32PWR4-NEXT: addc 3, 3, 5
1222
+ ; ASM32PWR4-NEXT: lbz 8, 91(1)
1223
+ ; ASM32PWR4-NEXT: adde 5, 6, 7
1224
+ ; ASM32PWR4-NEXT: addc 3, 3, 8
1225
+ ; ASM32PWR4-NEXT: lbz 6, 103(1)
1226
+ ; ASM32PWR4-NEXT: addze 5, 5
1218
1227
; ASM32PWR4-NEXT: addc 3, 3, 0
1219
- ; ASM32PWR4-NEXT: lwz 6, 88(1)
1220
- ; ASM32PWR4-NEXT: adde 4, 4, 7
1221
- ; ASM32PWR4-NEXT: addc 3, 3, 6
1228
+ ; ASM32PWR4-NEXT: adde 5, 5, 12
1222
1229
; ASM32PWR4-NEXT: lwz 31, -4(1) # 4-byte Folded Reload
1223
- ; ASM32PWR4-NEXT: addze 6, 4
1224
- ; ASM32PWR4-NEXT: addc 4, 3, 11
1225
- ; ASM32PWR4-NEXT: adde 3, 6, 5
1230
+ ; ASM32PWR4-NEXT: srawi 7, 4, 31
1231
+ ; ASM32PWR4-NEXT: addc 3, 3, 4
1232
+ ; ASM32PWR4-NEXT: adde 5, 5, 7
1233
+ ; ASM32PWR4-NEXT: lwz 30, -8(1) # 4-byte Folded Reload
1234
+ ; ASM32PWR4-NEXT: addc 4, 3, 6
1235
+ ; ASM32PWR4-NEXT: addze 3, 5
1226
1236
; ASM32PWR4-NEXT: blr
1227
1237
;
1228
1238
; ASM64PWR4-LABEL: test_ints_stack:
1229
1239
; ASM64PWR4: # %bb.0: # %entry
1230
1240
; ASM64PWR4-NEXT: add 3, 3, 4
1231
- ; ASM64PWR4-NEXT: ld 4, 112 (1)
1241
+ ; ASM64PWR4-NEXT: std 31, -8 (1) # 8-byte Folded Spill
1232
1242
; ASM64PWR4-NEXT: add 3, 3, 5
1233
1243
; ASM64PWR4-NEXT: add 3, 3, 6
1234
1244
; ASM64PWR4-NEXT: add 3, 3, 7
1235
- ; ASM64PWR4-NEXT: lwa 12, 124 (1)
1245
+ ; ASM64PWR4-NEXT: std 2, -16 (1) # 8-byte Folded Spill
1236
1246
; ASM64PWR4-NEXT: add 3, 3, 8
1237
1247
; ASM64PWR4-NEXT: add 3, 3, 9
1248
+ ; ASM64PWR4-NEXT: ld 6, 112(1)
1238
1249
; ASM64PWR4-NEXT: add 3, 3, 10
1239
1250
; ASM64PWR4-NEXT: extsw 3, 3
1240
- ; ASM64PWR4-NEXT: lwz 5, 132(1)
1241
- ; ASM64PWR4-NEXT: add 3, 3, 4
1251
+ ; ASM64PWR4-NEXT: lha 0, 126(1)
1252
+ ; ASM64PWR4-NEXT: add 3, 3, 6
1253
+ ; ASM64PWR4-NEXT: add 3, 3, 0
1254
+ ; ASM64PWR4-NEXT: lbz 5, 135(1)
1255
+ ; ASM64PWR4-NEXT: lwz 7, 140(1)
1256
+ ; ASM64PWR4-NEXT: add 3, 3, 5
1257
+ ; ASM64PWR4-NEXT: lwa 12, 148(1)
1258
+ ; ASM64PWR4-NEXT: add 3, 3, 7
1242
1259
; ASM64PWR4-NEXT: add 3, 3, 12
1243
- ; ASM64PWR4-NEXT: std 2, -8(1) # 8-byte Folded Spill
1260
+ ; ASM64PWR4-NEXT: ld 31, 152(1)
1261
+ ; ASM64PWR4-NEXT: lbz 5, 167(1)
1262
+ ; ASM64PWR4-NEXT: add 3, 3, 31
1263
+ ; ASM64PWR4-NEXT: lwa 11, 172(1)
1244
1264
; ASM64PWR4-NEXT: add 3, 3, 5
1245
- ; ASM64PWR4-NEXT: lwz 2, 140(1)
1246
- ; ASM64PWR4-NEXT: lwa 11, 148(1)
1247
- ; ASM64PWR4-NEXT: add 3, 3, 2
1248
1265
; ASM64PWR4-NEXT: add 3, 3, 11
1249
- ; ASM64PWR4-NEXT: ld 4, 152(1)
1250
- ; ASM64PWR4-NEXT: lwz 0, 164(1)
1266
+ ; ASM64PWR4-NEXT: lbz 2, 183(1)
1267
+ ; ASM64PWR4-NEXT: lbz 6, 191(1)
1268
+ ; ASM64PWR4-NEXT: extsb 4, 2
1251
1269
; ASM64PWR4-NEXT: add 3, 3, 4
1252
- ; ASM64PWR4-NEXT: lwa 5, 172(1)
1253
- ; ASM64PWR4-NEXT: add 3, 3, 0
1254
- ; ASM64PWR4-NEXT: add 3, 3, 5
1255
- ; ASM64PWR4-NEXT: ld 2, -8(1) # 8-byte Folded Reload
1270
+ ; ASM64PWR4-NEXT: add 3, 3, 6
1271
+ ; ASM64PWR4-NEXT: ld 2, -16(1) # 8-byte Folded Reload
1272
+ ; ASM64PWR4-NEXT: ld 31, -8(1) # 8-byte Folded Reload
1256
1273
; ASM64PWR4-NEXT: blr
1257
1274
entry:
1258
1275
%add = add nsw i32 %i1 , %i2
@@ -1277,7 +1294,11 @@ entry:
1277
1294
%add18 = add nsw i64 %add16 , %conv17
1278
1295
%conv19 = sext i32 %i16 to i64
1279
1296
%add20 = add nsw i64 %add18 , %conv19
1280
- ret i64 %add20
1297
+ %conv21 = sext i8 %si8 to i64
1298
+ %add22 = add nsw i64 %add20 , %conv21
1299
+ %conv23 = zext i1 %zi1 to i64
1300
+ %add24 = add nsw i64 %add22 , %conv23
1301
+ ret i64 %add24
1281
1302
}
1282
1303
1283
1304
@ll1 = common global i64 0 , align 8
@@ -1720,17 +1741,17 @@ entry:
1720
1741
define i32 @mix_callee (double %d1 , double %d2 , double %d3 , double %d4 , i8 zeroext %c1 , i16 signext %s1 , i64 %ll1 , i32 %i1 , i32 %i2 , i32 %i3 ) {
1721
1742
; ASM32PWR4-LABEL: mix_callee:
1722
1743
; ASM32PWR4: # %bb.0: # %entry
1723
- ; ASM32PWR4-NEXT: lwz 4, 60 (1)
1744
+ ; ASM32PWR4-NEXT: lha 3, 62 (1)
1724
1745
; ASM32PWR4-NEXT: lis 8, 17200
1725
1746
; ASM32PWR4-NEXT: fadd 1, 1, 2
1726
1747
; ASM32PWR4-NEXT: fadd 1, 1, 3
1727
- ; ASM32PWR4-NEXT: lwz 5, 56(1)
1728
- ; ASM32PWR4-NEXT: lwz 3, 68(1)
1729
- ; ASM32PWR4-NEXT: add 4, 5, 4
1730
- ; ASM32PWR4-NEXT: lwz 5, L..C34(2) # %const.0
1748
+ ; ASM32PWR4-NEXT: lbz 5, 59(1)
1731
1749
; ASM32PWR4-NEXT: fadd 1, 1, 4
1750
+ ; ASM32PWR4-NEXT: lwz 4, 68(1)
1751
+ ; ASM32PWR4-NEXT: add 3, 5, 3
1752
+ ; ASM32PWR4-NEXT: lwz 5, L..C34(2) # %const.0
1732
1753
; ASM32PWR4-NEXT: lwz 6, 72(1)
1733
- ; ASM32PWR4-NEXT: add 3, 4, 3
1754
+ ; ASM32PWR4-NEXT: add 3, 3, 4
1734
1755
; ASM32PWR4-NEXT: lwz 7, 76(1)
1735
1756
; ASM32PWR4-NEXT: add 3, 3, 6
1736
1757
; ASM32PWR4-NEXT: stw 8, -16(1)
0 commit comments