[PATCH] D87222: [PowerPC] [FPEnv] Disable strict FP mutation by default for PowerPC

Qiu Chaofan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Sep 6 22:10:00 PDT 2020


qiucf created this revision.
qiucf added reviewers: hfinkel, nemanjai, jsji, kbarton, uweigand, kpn, PowerPC.
Herald added subscribers: llvm-commits, pengfei, shchenz, hiraditya.
Herald added a project: LLVM.
qiucf requested review of this revision.

D70226 <https://reviews.llvm.org/D70226> introduced a config `IsStrictFPEnabled`, which controls the strict floating point mutation (transforming some strict-fp operations into non-strict). This patch disables the mutation.


https://reviews.llvm.org/D87222

Files:
  llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  llvm/lib/Target/PowerPC/PPCInstrInfo.td
  llvm/test/CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll


Index: llvm/test/CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll
===================================================================
--- llvm/test/CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll
+++ llvm/test/CodeGen/PowerPC/vector-constrained-fp-intrinsics.ll
@@ -7168,19 +7168,19 @@
 ; PC64LE-NEXT:    addis 3, 2, .LCPI133_0 at toc@ha
 ; PC64LE-NEXT:    addis 4, 2, .LCPI133_1 at toc@ha
 ; PC64LE-NEXT:    addis 5, 2, .LCPI133_2 at toc@ha
-; PC64LE-NEXT:    lfs 1, .LCPI133_0 at toc@l(3)
+; PC64LE-NEXT:    lfs 3, .LCPI133_0 at toc@l(3)
 ; PC64LE-NEXT:    lfs 2, .LCPI133_1 at toc@l(4)
-; PC64LE-NEXT:    lfs 3, .LCPI133_2 at toc@l(5)
+; PC64LE-NEXT:    lfs 1, .LCPI133_2 at toc@l(5)
 ; PC64LE-NEXT:    blr
 ;
 ; PC64LE9-LABEL: constrained_vector_fpext_v3f32:
 ; PC64LE9:       # %bb.0: # %entry
 ; PC64LE9-NEXT:    addis 3, 2, .LCPI133_0 at toc@ha
-; PC64LE9-NEXT:    lfs 1, .LCPI133_0 at toc@l(3)
+; PC64LE9-NEXT:    lfs 3, .LCPI133_0 at toc@l(3)
 ; PC64LE9-NEXT:    addis 3, 2, .LCPI133_1 at toc@ha
 ; PC64LE9-NEXT:    lfs 2, .LCPI133_1 at toc@l(3)
 ; PC64LE9-NEXT:    addis 3, 2, .LCPI133_2 at toc@ha
-; PC64LE9-NEXT:    lfs 3, .LCPI133_2 at toc@l(3)
+; PC64LE9-NEXT:    lfs 1, .LCPI133_2 at toc@l(3)
 ; PC64LE9-NEXT:    blr
 entry:
   %result = call <3 x double> @llvm.experimental.constrained.fpext.v3f64.v3f32(
Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td
===================================================================
--- llvm/lib/Target/PowerPC/PPCInstrInfo.td
+++ llvm/lib/Target/PowerPC/PPCInstrInfo.td
@@ -3477,7 +3477,7 @@
 def : Pat<(f64 (extloadf32 xaddr:$src)),
           (COPY_TO_REGCLASS (LFSX xaddr:$src), F8RC)>;
 
-def : Pat<(f64 (fpextend f32:$src)),
+def : Pat<(f64 (any_fpextend f32:$src)),
           (COPY_TO_REGCLASS $src, F8RC)>;
 }
 
Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp
===================================================================
--- llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -1317,6 +1317,8 @@
     MaxLoadsPerMemcmpOptSize = 4;
   }
 
+  IsStrictFPEnabled = true;
+
   // Let the subtarget (CPU) decide if a predictable select is more expensive
   // than the corresponding branch. This information is used in CGP to decide
   // when to convert selects into branches.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D87222.290179.patch
Type: text/x-patch
Size: 2246 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200907/70202820/attachment.bin>


More information about the llvm-commits mailing list