@@ -4637,3 +4637,129 @@ define i64 @imm64_0xFF7FFFFF7FFFFFFE() {
46374637; RV64-REMAT-NEXT: ret
46384638 ret i64 -36028799166447617 ; 0xFF7FFFFF7FFFFFFE
46394639}
4640+
4641+ define i64 @imm64_0xFFFFFFFF0 () {
4642+ ; RV32I-LABEL: imm64_0xFFFFFFFF0:
4643+ ; RV32I: # %bb.0:
4644+ ; RV32I-NEXT: li a0, -16
4645+ ; RV32I-NEXT: li a1, 15
4646+ ; RV32I-NEXT: ret
4647+ ;
4648+ ; RV32IXQCILI-LABEL: imm64_0xFFFFFFFF0:
4649+ ; RV32IXQCILI: # %bb.0:
4650+ ; RV32IXQCILI-NEXT: li a0, -16
4651+ ; RV32IXQCILI-NEXT: li a1, 15
4652+ ; RV32IXQCILI-NEXT: ret
4653+ ;
4654+ ; RV64I-LABEL: imm64_0xFFFFFFFF0:
4655+ ; RV64I: # %bb.0:
4656+ ; RV64I-NEXT: li a0, 1
4657+ ; RV64I-NEXT: slli a0, a0, 36
4658+ ; RV64I-NEXT: addi a0, a0, -16
4659+ ; RV64I-NEXT: ret
4660+ ;
4661+ ; RV64IZBA-LABEL: imm64_0xFFFFFFFF0:
4662+ ; RV64IZBA: # %bb.0:
4663+ ; RV64IZBA-NEXT: li a0, 1
4664+ ; RV64IZBA-NEXT: slli a0, a0, 36
4665+ ; RV64IZBA-NEXT: addi a0, a0, -16
4666+ ; RV64IZBA-NEXT: ret
4667+ ;
4668+ ; RV64IZBB-LABEL: imm64_0xFFFFFFFF0:
4669+ ; RV64IZBB: # %bb.0:
4670+ ; RV64IZBB-NEXT: li a0, 1
4671+ ; RV64IZBB-NEXT: slli a0, a0, 36
4672+ ; RV64IZBB-NEXT: addi a0, a0, -16
4673+ ; RV64IZBB-NEXT: ret
4674+ ;
4675+ ; RV64IZBS-LABEL: imm64_0xFFFFFFFF0:
4676+ ; RV64IZBS: # %bb.0:
4677+ ; RV64IZBS-NEXT: li a0, 1
4678+ ; RV64IZBS-NEXT: slli a0, a0, 36
4679+ ; RV64IZBS-NEXT: addi a0, a0, -16
4680+ ; RV64IZBS-NEXT: ret
4681+ ;
4682+ ; RV64IXTHEADBB-LABEL: imm64_0xFFFFFFFF0:
4683+ ; RV64IXTHEADBB: # %bb.0:
4684+ ; RV64IXTHEADBB-NEXT: li a0, 1
4685+ ; RV64IXTHEADBB-NEXT: slli a0, a0, 36
4686+ ; RV64IXTHEADBB-NEXT: addi a0, a0, -16
4687+ ; RV64IXTHEADBB-NEXT: ret
4688+ ;
4689+ ; RV32-REMAT-LABEL: imm64_0xFFFFFFFF0:
4690+ ; RV32-REMAT: # %bb.0:
4691+ ; RV32-REMAT-NEXT: li a0, -16
4692+ ; RV32-REMAT-NEXT: li a1, 15
4693+ ; RV32-REMAT-NEXT: ret
4694+ ;
4695+ ; RV64-REMAT-LABEL: imm64_0xFFFFFFFF0:
4696+ ; RV64-REMAT: # %bb.0:
4697+ ; RV64-REMAT-NEXT: li a0, 1
4698+ ; RV64-REMAT-NEXT: slli a0, a0, 36
4699+ ; RV64-REMAT-NEXT: addi a0, a0, -16
4700+ ; RV64-REMAT-NEXT: ret
4701+ ret i64 68719476720 ; 0xFFFFFFFF0
4702+ }
4703+
4704+ define i64 @imm64_0x1FFFFFF08 () {
4705+ ; RV32I-LABEL: imm64_0x1FFFFFF08:
4706+ ; RV32I: # %bb.0:
4707+ ; RV32I-NEXT: li a0, -248
4708+ ; RV32I-NEXT: li a1, 1
4709+ ; RV32I-NEXT: ret
4710+ ;
4711+ ; RV32IXQCILI-LABEL: imm64_0x1FFFFFF08:
4712+ ; RV32IXQCILI: # %bb.0:
4713+ ; RV32IXQCILI-NEXT: li a0, -248
4714+ ; RV32IXQCILI-NEXT: li a1, 1
4715+ ; RV32IXQCILI-NEXT: ret
4716+ ;
4717+ ; RV64I-LABEL: imm64_0x1FFFFFF08:
4718+ ; RV64I: # %bb.0:
4719+ ; RV64I-NEXT: li a0, 1
4720+ ; RV64I-NEXT: slli a0, a0, 33
4721+ ; RV64I-NEXT: addi a0, a0, -248
4722+ ; RV64I-NEXT: ret
4723+ ;
4724+ ; RV64IZBA-LABEL: imm64_0x1FFFFFF08:
4725+ ; RV64IZBA: # %bb.0:
4726+ ; RV64IZBA-NEXT: li a0, 1
4727+ ; RV64IZBA-NEXT: slli a0, a0, 33
4728+ ; RV64IZBA-NEXT: addi a0, a0, -248
4729+ ; RV64IZBA-NEXT: ret
4730+ ;
4731+ ; RV64IZBB-LABEL: imm64_0x1FFFFFF08:
4732+ ; RV64IZBB: # %bb.0:
4733+ ; RV64IZBB-NEXT: li a0, 1
4734+ ; RV64IZBB-NEXT: slli a0, a0, 33
4735+ ; RV64IZBB-NEXT: addi a0, a0, -248
4736+ ; RV64IZBB-NEXT: ret
4737+ ;
4738+ ; RV64IZBS-LABEL: imm64_0x1FFFFFF08:
4739+ ; RV64IZBS: # %bb.0:
4740+ ; RV64IZBS-NEXT: li a0, 1
4741+ ; RV64IZBS-NEXT: slli a0, a0, 33
4742+ ; RV64IZBS-NEXT: addi a0, a0, -248
4743+ ; RV64IZBS-NEXT: ret
4744+ ;
4745+ ; RV64IXTHEADBB-LABEL: imm64_0x1FFFFFF08:
4746+ ; RV64IXTHEADBB: # %bb.0:
4747+ ; RV64IXTHEADBB-NEXT: li a0, 1
4748+ ; RV64IXTHEADBB-NEXT: slli a0, a0, 33
4749+ ; RV64IXTHEADBB-NEXT: addi a0, a0, -248
4750+ ; RV64IXTHEADBB-NEXT: ret
4751+ ;
4752+ ; RV32-REMAT-LABEL: imm64_0x1FFFFFF08:
4753+ ; RV32-REMAT: # %bb.0:
4754+ ; RV32-REMAT-NEXT: li a0, -248
4755+ ; RV32-REMAT-NEXT: li a1, 1
4756+ ; RV32-REMAT-NEXT: ret
4757+ ;
4758+ ; RV64-REMAT-LABEL: imm64_0x1FFFFFF08:
4759+ ; RV64-REMAT: # %bb.0:
4760+ ; RV64-REMAT-NEXT: li a0, 1
4761+ ; RV64-REMAT-NEXT: slli a0, a0, 33
4762+ ; RV64-REMAT-NEXT: addi a0, a0, -248
4763+ ; RV64-REMAT-NEXT: ret
4764+ ret i64 8589934344 ; 0x1FFFFFF08
4765+ }
0 commit comments