File tree Expand file tree Collapse file tree 1 file changed +10
-3
lines changed
llvm/lib/CodeGen/GlobalISel Expand file tree Collapse file tree 1 file changed +10
-3
lines changed Original file line number Diff line number Diff line change 1313// ===----------------------------------------------------------------------===//
1414
1515#include " llvm/CodeGen/GlobalISel/LegalizerHelper.h"
16+ #include " llvm/CodeGen/CodeGenCommonISel.h"
1617#include " llvm/CodeGen/GlobalISel/CallLowering.h"
1718#include " llvm/CodeGen/GlobalISel/GISelChangeObserver.h"
1819#include " llvm/CodeGen/GlobalISel/GISelValueTracking.h"
@@ -9100,8 +9101,12 @@ LegalizerHelper::lowerISFPCLASS(MachineInstr &MI) {
91009101 return Legalized;
91019102 }
91029103
9103- // TODO: Try inverting the test with getInvertedFPClassTest like the DAG
9104- // version
9104+ bool isInverted = false ;
9105+ FPClassTest InvertedTest = llvm::invertFPClassTestIfSimpler (Mask, false );
9106+ if (Inverse != fcNone) {
9107+ Mask = InvertedTest;
9108+ isInverted = true ;
9109+ }
91059110
91069111 unsigned BitSize = SrcTy.getScalarSizeInBits ();
91079112 const fltSemantics &Semantics = getFltSemanticForLLT (SrcTy.getScalarType ());
@@ -9252,7 +9257,9 @@ LegalizerHelper::lowerISFPCLASS(MachineInstr &MI) {
92529257 }
92539258 appendToRes (NormalRes);
92549259 }
9255-
9260+ if (isInverted) {
9261+ Res = MIRBuilder.buildNot (DstTy, Res);
9262+ }
92569263 MIRBuilder.buildCopy (DstReg, Res);
92579264 MI.eraseFromParent ();
92589265 return Legalized;
You can’t perform that action at this time.
0 commit comments