Skip to content

Commit c4030c8

Browse files
authored
[RISCV] Fix FP64 DinX R Regclass (#116688)
This was a typo in #112983 that didn't cause build failures but is still wrong.
1 parent 1218071 commit c4030c8

File tree

2 files changed

+4
-10
lines changed

2 files changed

+4
-10
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20531,7 +20531,7 @@ RISCVTargetLowering::getRegForInlineAsmConstraint(const TargetRegisterInfo *TRI,
2053120531
break;
2053220532
case 'R':
2053320533
if (VT == MVT::f64 && !Subtarget.is64Bit() && Subtarget.hasStdExtZdinx())
20534-
return std::make_pair(0U, &RISCV::GPRF64PairCRegClass);
20534+
return std::make_pair(0U, &RISCV::GPRF64PairNoX0RegClass);
2053520535
return std::make_pair(0U, &RISCV::GPRPairNoX0RegClass);
2053620536
default:
2053720537
break;

llvm/test/CodeGen/RISCV/zdinx-asm-constraint.ll

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,15 @@ entry:
2929
define dso_local void @zdinx_asm_R(ptr nocapture noundef writeonly %a, double noundef %b, double noundef %c) nounwind {
3030
; CHECK-LABEL: zdinx_asm_R:
3131
; CHECK: # %bb.0: # %entry
32-
; CHECK-NEXT: addi sp, sp, -16
33-
; CHECK-NEXT: sw s0, 12(sp) # 4-byte Folded Spill
34-
; CHECK-NEXT: sw s1, 8(sp) # 4-byte Folded Spill
3532
; CHECK-NEXT: mv a5, a4
36-
; CHECK-NEXT: mv s1, a2
33+
; CHECK-NEXT: mv a7, a2
3734
; CHECK-NEXT: mv a4, a3
38-
; CHECK-NEXT: mv s0, a1
35+
; CHECK-NEXT: mv a6, a1
3936
; CHECK-NEXT: #APP
40-
; CHECK-NEXT: fsgnjx.d a2, s0, a4
37+
; CHECK-NEXT: fsgnjx.d a2, a6, a4
4138
; CHECK-NEXT: #NO_APP
4239
; CHECK-NEXT: sw a2, 8(a0)
4340
; CHECK-NEXT: sw a3, 12(a0)
44-
; CHECK-NEXT: lw s0, 12(sp) # 4-byte Folded Reload
45-
; CHECK-NEXT: lw s1, 8(sp) # 4-byte Folded Reload
46-
; CHECK-NEXT: addi sp, sp, 16
4741
; CHECK-NEXT: ret
4842
entry:
4943
%arrayidx = getelementptr inbounds double, ptr %a, i32 1

0 commit comments

Comments
 (0)