@@ -1558,6 +1558,60 @@ define i64 @imm_2reg_1() nounwind {
1558
1558
ret i64 -1152921504301427080 ; 0xF000_0000_1234_5678
1559
1559
}
1560
1560
1561
+ ; TODO: Selecting -1 would be better in this case as it can be loaded with a
1562
+ ; 16 bit instruction when the compressed extension is enabled.
1563
+ define void @imm_store_i8_neg1 (ptr %p ) nounwind {
1564
+ ; RV32I-LABEL: imm_store_i8_neg1:
1565
+ ; RV32I: # %bb.0:
1566
+ ; RV32I-NEXT: li a1, 255
1567
+ ; RV32I-NEXT: sb a1, 0(a0)
1568
+ ; RV32I-NEXT: ret
1569
+ ;
1570
+ ; RV64I-LABEL: imm_store_i8_neg1:
1571
+ ; RV64I: # %bb.0:
1572
+ ; RV64I-NEXT: li a1, 255
1573
+ ; RV64I-NEXT: sb a1, 0(a0)
1574
+ ; RV64I-NEXT: ret
1575
+ ;
1576
+ ; RV64IZBA-LABEL: imm_store_i8_neg1:
1577
+ ; RV64IZBA: # %bb.0:
1578
+ ; RV64IZBA-NEXT: li a1, 255
1579
+ ; RV64IZBA-NEXT: sb a1, 0(a0)
1580
+ ; RV64IZBA-NEXT: ret
1581
+ ;
1582
+ ; RV64IZBB-LABEL: imm_store_i8_neg1:
1583
+ ; RV64IZBB: # %bb.0:
1584
+ ; RV64IZBB-NEXT: li a1, 255
1585
+ ; RV64IZBB-NEXT: sb a1, 0(a0)
1586
+ ; RV64IZBB-NEXT: ret
1587
+ ;
1588
+ ; RV64IZBS-LABEL: imm_store_i8_neg1:
1589
+ ; RV64IZBS: # %bb.0:
1590
+ ; RV64IZBS-NEXT: li a1, 255
1591
+ ; RV64IZBS-NEXT: sb a1, 0(a0)
1592
+ ; RV64IZBS-NEXT: ret
1593
+ ;
1594
+ ; RV64IXTHEADBB-LABEL: imm_store_i8_neg1:
1595
+ ; RV64IXTHEADBB: # %bb.0:
1596
+ ; RV64IXTHEADBB-NEXT: li a1, 255
1597
+ ; RV64IXTHEADBB-NEXT: sb a1, 0(a0)
1598
+ ; RV64IXTHEADBB-NEXT: ret
1599
+ ;
1600
+ ; RV32-REMAT-LABEL: imm_store_i8_neg1:
1601
+ ; RV32-REMAT: # %bb.0:
1602
+ ; RV32-REMAT-NEXT: li a1, 255
1603
+ ; RV32-REMAT-NEXT: sb a1, 0(a0)
1604
+ ; RV32-REMAT-NEXT: ret
1605
+ ;
1606
+ ; RV64-REMAT-LABEL: imm_store_i8_neg1:
1607
+ ; RV64-REMAT: # %bb.0:
1608
+ ; RV64-REMAT-NEXT: li a1, 255
1609
+ ; RV64-REMAT-NEXT: sb a1, 0(a0)
1610
+ ; RV64-REMAT-NEXT: ret
1611
+ store i8 -1 , ptr %p
1612
+ ret void
1613
+ }
1614
+
1561
1615
define void @imm_store_i16_neg1 (ptr %p ) nounwind {
1562
1616
; RV32I-LABEL: imm_store_i16_neg1:
1563
1617
; RV32I: # %bb.0:
@@ -2121,8 +2175,8 @@ define i64 @imm_70370820078523() {
2121
2175
;
2122
2176
; RV64I-POOL-LABEL: imm_70370820078523:
2123
2177
; RV64I-POOL: # %bb.0:
2124
- ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI37_0 )
2125
- ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI37_0 )(a0)
2178
+ ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI38_0 )
2179
+ ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI38_0 )(a0)
2126
2180
; RV64I-POOL-NEXT: ret
2127
2181
;
2128
2182
; RV64IZBA-LABEL: imm_70370820078523:
@@ -2266,8 +2320,8 @@ define i64 @imm_neg_9223301666034697285() {
2266
2320
;
2267
2321
; RV64I-POOL-LABEL: imm_neg_9223301666034697285:
2268
2322
; RV64I-POOL: # %bb.0:
2269
- ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI39_0 )
2270
- ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI39_0 )(a0)
2323
+ ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI40_0 )
2324
+ ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI40_0 )(a0)
2271
2325
; RV64I-POOL-NEXT: ret
2272
2326
;
2273
2327
; RV64IZBA-LABEL: imm_neg_9223301666034697285:
@@ -2544,8 +2598,8 @@ define i64 @imm_neg_9223354442718100411() {
2544
2598
;
2545
2599
; RV64I-POOL-LABEL: imm_neg_9223354442718100411:
2546
2600
; RV64I-POOL: # %bb.0:
2547
- ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI43_0 )
2548
- ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI43_0 )(a0)
2601
+ ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI44_0 )
2602
+ ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI44_0 )(a0)
2549
2603
; RV64I-POOL-NEXT: ret
2550
2604
;
2551
2605
; RV64IZBA-LABEL: imm_neg_9223354442718100411:
@@ -3855,8 +3909,8 @@ define i64 @imm64_same_lo_hi_optsize() nounwind optsize {
3855
3909
;
3856
3910
; RV64I-POOL-LABEL: imm64_same_lo_hi_optsize:
3857
3911
; RV64I-POOL: # %bb.0:
3858
- ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI64_0 )
3859
- ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI64_0 )(a0)
3912
+ ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI65_0 )
3913
+ ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI65_0 )(a0)
3860
3914
; RV64I-POOL-NEXT: ret
3861
3915
;
3862
3916
; RV64IZBA-LABEL: imm64_same_lo_hi_optsize:
@@ -3930,8 +3984,8 @@ define i64 @imm64_same_lo_hi_negative() nounwind {
3930
3984
;
3931
3985
; RV64I-POOL-LABEL: imm64_same_lo_hi_negative:
3932
3986
; RV64I-POOL: # %bb.0:
3933
- ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI65_0 )
3934
- ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI65_0 )(a0)
3987
+ ; RV64I-POOL-NEXT: lui a0, %hi(.LCPI66_0 )
3988
+ ; RV64I-POOL-NEXT: ld a0, %lo(.LCPI66_0 )(a0)
3935
3989
; RV64I-POOL-NEXT: ret
3936
3990
;
3937
3991
; RV64IZBA-LABEL: imm64_same_lo_hi_negative:
0 commit comments