[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