@@ -4110,3 +4110,70 @@ define i64 @imm64_0x10000100000000() {
4110
4110
; RV64-REMAT-NEXT: ret
4111
4111
ret i64 4503603922337792 ; 0x10000100000000
4112
4112
}
4113
+
4114
+ define i64 @imm64_0xFF7FFFFF7FFFFFFE () {
4115
+ ; RV32I-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
4116
+ ; RV32I: # %bb.0:
4117
+ ; RV32I-NEXT: lui a0, 524288
4118
+ ; RV32I-NEXT: addi a0, a0, -1
4119
+ ; RV32I-NEXT: lui a1, 1046528
4120
+ ; RV32I-NEXT: addi a1, a1, -1
4121
+ ; RV32I-NEXT: ret
4122
+ ;
4123
+ ; RV64I-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
4124
+ ; RV64I: # %bb.0:
4125
+ ; RV64I-NEXT: lui a0, 1044480
4126
+ ; RV64I-NEXT: addiw a0, a0, -1
4127
+ ; RV64I-NEXT: slli a0, a0, 31
4128
+ ; RV64I-NEXT: addi a0, a0, -1
4129
+ ; RV64I-NEXT: ret
4130
+ ;
4131
+ ; RV64IZBA-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
4132
+ ; RV64IZBA: # %bb.0:
4133
+ ; RV64IZBA-NEXT: lui a0, 1044480
4134
+ ; RV64IZBA-NEXT: addiw a0, a0, -1
4135
+ ; RV64IZBA-NEXT: slli a0, a0, 31
4136
+ ; RV64IZBA-NEXT: addi a0, a0, -1
4137
+ ; RV64IZBA-NEXT: ret
4138
+ ;
4139
+ ; RV64IZBB-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
4140
+ ; RV64IZBB: # %bb.0:
4141
+ ; RV64IZBB-NEXT: lui a0, 1044480
4142
+ ; RV64IZBB-NEXT: addiw a0, a0, -1
4143
+ ; RV64IZBB-NEXT: slli a0, a0, 31
4144
+ ; RV64IZBB-NEXT: addi a0, a0, -1
4145
+ ; RV64IZBB-NEXT: ret
4146
+ ;
4147
+ ; RV64IZBS-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
4148
+ ; RV64IZBS: # %bb.0:
4149
+ ; RV64IZBS-NEXT: lui a0, 1044480
4150
+ ; RV64IZBS-NEXT: addiw a0, a0, -1
4151
+ ; RV64IZBS-NEXT: slli a0, a0, 31
4152
+ ; RV64IZBS-NEXT: addi a0, a0, -1
4153
+ ; RV64IZBS-NEXT: ret
4154
+ ;
4155
+ ; RV64IXTHEADBB-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
4156
+ ; RV64IXTHEADBB: # %bb.0:
4157
+ ; RV64IXTHEADBB-NEXT: lui a0, 1044480
4158
+ ; RV64IXTHEADBB-NEXT: addiw a0, a0, -1
4159
+ ; RV64IXTHEADBB-NEXT: slli a0, a0, 31
4160
+ ; RV64IXTHEADBB-NEXT: addi a0, a0, -1
4161
+ ; RV64IXTHEADBB-NEXT: ret
4162
+ ;
4163
+ ; RV32-REMAT-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
4164
+ ; RV32-REMAT: # %bb.0:
4165
+ ; RV32-REMAT-NEXT: lui a0, 524288
4166
+ ; RV32-REMAT-NEXT: addi a0, a0, -1
4167
+ ; RV32-REMAT-NEXT: lui a1, 1046528
4168
+ ; RV32-REMAT-NEXT: addi a1, a1, -1
4169
+ ; RV32-REMAT-NEXT: ret
4170
+ ;
4171
+ ; RV64-REMAT-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
4172
+ ; RV64-REMAT: # %bb.0:
4173
+ ; RV64-REMAT-NEXT: lui a0, 1044480
4174
+ ; RV64-REMAT-NEXT: addiw a0, a0, -1
4175
+ ; RV64-REMAT-NEXT: slli a0, a0, 31
4176
+ ; RV64-REMAT-NEXT: addi a0, a0, -1
4177
+ ; RV64-REMAT-NEXT: ret
4178
+ ret i64 -36028799166447617 ; 0xFF7FFFFF7FFFFFFE
4179
+ }
0 commit comments