mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-25 00:35:30 +00:00
[Sparc] Fix an assertion failure while lowering fcmp on long double.
This assertion is triggered because an integer constant is created with wrong type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189948 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6947f10ec4
commit
bf34f34642
@ -1816,7 +1816,7 @@ SparcTargetLowering::LowerF128Compare(SDValue LHS, SDValue RHS,
|
||||
return DAG.getNode(SPISD::CMPICC, DL, MVT::Glue, Result, RHS);
|
||||
}
|
||||
case SPCC::FCC_ULE: {
|
||||
SDValue RHS = DAG.getTargetConstant(2, LHS.getValueType());
|
||||
SDValue RHS = DAG.getTargetConstant(2, Result.getValueType());
|
||||
SPCC = SPCC::ICC_NE;
|
||||
return DAG.getNode(SPISD::CMPICC, DL, MVT::Glue, Result, RHS);
|
||||
}
|
||||
|
@ -76,3 +76,23 @@ entry:
|
||||
%ret = select i1 %cond, i32 %a, i32 %b
|
||||
ret i32 %ret
|
||||
}
|
||||
|
||||
; HARD-LABEL: f128_compare2
|
||||
; HARD: fcmpq
|
||||
; HARD: fb{{ule|g}}
|
||||
|
||||
; SOFT-LABEL: f128_compare2
|
||||
; SOFT: _Q_cmp
|
||||
; SOFT: cmp
|
||||
|
||||
define i32 @f128_compare2() {
|
||||
entry:
|
||||
%0 = fcmp ogt fp128 undef, 0xL00000000000000000000000000000000
|
||||
br i1 %0, label %"5", label %"7"
|
||||
|
||||
"5": ; preds = %entry
|
||||
ret i32 0
|
||||
|
||||
"7": ; preds = %entry
|
||||
ret i32 1
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user