[llvm] r333523 - [Sparc] Treat %fxx registers with value type Other as single precision
Daniel Cederman via llvm-commits
llvm-commits at lists.llvm.org
Wed May 30 02:52:19 PDT 2018
Author: dcederman
Date: Wed May 30 02:52:18 2018
New Revision: 333523
URL: http://llvm.org/viewvc/llvm-project?rev=333523&view=rev
Log:
[Sparc] Treat %fxx registers with value type Other as single precision
They get type Other when used in the clobber list in inline assembly.
This fixes tests fp128.ll and float.ll that failed after r333512.
Modified:
llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp
Modified: llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp?rev=333523&r1=333522&r2=333523&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/Sparc/SparcISelLowering.cpp Wed May 30 02:52:18 2018
@@ -3517,7 +3517,7 @@ SparcTargetLowering::getRegForInlineAsmC
!name.substr(1).getAsInteger(10, intVal) && intVal <= 63) {
std::string newConstraint;
- if (VT == MVT::f32) {
+ if (VT == MVT::f32 || VT == MVT::Other) {
newConstraint = "{f" + utostr(intVal) + "}";
} else if (VT == MVT::f64 && (intVal % 2 == 0)) {
newConstraint = "{d" + utostr(intVal / 2) + "}";
More information about the llvm-commits
mailing list