llvm-project/llvm/test/CodeGen/Generic
Sanjay Patel 5a4f7cf2ff [IR] allow fast-math-flags on select of FP values
This is a minimal start to correcting a problem most directly discussed in PR38086:
https://bugs.llvm.org/show_bug.cgi?id=38086

We have been hacking around a limitation for FP select patterns by using the
fast-math-flags on the condition of the select rather than the select itself.
This patch just allows FMF to appear with the 'select' opcode. No changes are
needed to "FPMathOperator" because it already includes select-of-FP because
that definition is based on the (return) value type.

Once we have this ability, we can start correcting and adding IR transforms
to use the FMF on a 'select' instruction. The instcombine and vectorizer test
diffs only show that the IRBuilder change is behaving as expected by applying
an FMF guard value to 'select'.

For reference:
rL241901 - allowed FMF with fcmp
rL255555 - allowed FMF with FP calls

Differential Revision: https://reviews.llvm.org/D61917

llvm-svn: 361401
2019-05-22 15:50:46 +00:00
..
2002-04-14-UnexpectedUnsignedType.ll
2002-04-16-StackFrameSizeAlignment.ll
2003-05-27-phifcmpd.ll
2003-05-27-useboolinotherbb.ll
2003-05-27-usefsubasbool.ll
2003-05-28-ManyArgs.ll
2003-05-30-BadFoldGEP.ll
2003-05-30-BadPreselectPhi.ll
2003-07-06-BadIntCmp.ll
2003-07-07-BadLongConst.ll
2003-07-08-BadCastToBool.ll
2003-07-29-BadConstSbyte.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
2004-05-09-LiveVarPartialRegister.ll
2005-01-18-SetUO-InfLoop.ll
2005-04-09-GlobalInPHI.ll
2005-10-18-ZeroSizeStackObject.ll
2005-10-21-longlonggtu.ll
2005-12-01-Crash.ll
2005-12-12-ExpandSextInreg.ll
2006-01-12-BadSetCCFold.ll
2006-01-18-InvalidBranchOpcodeAssert.ll
2006-02-12-InsertLibcall.ll
2006-03-01-dagcombineinfloop.ll
2006-04-26-SetCCAnd.ll
2006-04-28-Sign-extend-bool.ll
2006-05-06-GEP-Cast-Sink-Crash.ll
2006-06-12-LowerSwitchCrash.ll
2006-06-13-ComputeMaskedBitsCrash.ll
2006-06-28-SimplifySetCCCrash.ll
2006-07-03-schedulers.ll
2006-08-30-CoalescerCrash.ll
2006-09-02-LocalAllocCrash.ll
2006-09-06-SwitchLowering.ll
2006-10-27-CondFolding.ll
2006-10-29-Crash.ll
2006-11-20-DAGCombineCrash.ll
2007-01-15-LoadSelectCycle.ll
2007-02-25-invoke.ll
2007-04-08-MultipleFrameIndices.ll [AVR] XFAIL a set of failing CodeGen tests 2017-02-08 10:24:18 +00:00
2007-04-13-SwitchLowerBadPhi.ll
2007-04-17-lsr-crash.ll
2007-04-27-InlineAsm-X-Dest.ll
2007-04-27-LargeMemObject.ll
2007-04-30-LandingPadBranchFolding.ll
2007-05-03-EHTypeInfo.ll
2007-05-15-InfiniteRecursion.ll
2007-12-17-InvokeAsm.ll [AVR] XFAIL a set of failing CodeGen tests 2017-02-08 10:24:18 +00:00
2007-12-31-UnusedSelector.ll
2008-01-25-dag-combine-mul.ll
2008-01-30-LoadCrash.ll
2008-02-04-Ctlz.ll
2008-02-04-ExtractSubvector.ll
2008-02-20-MatchingMem.ll
2008-02-25-NegateZero.ll
2008-02-26-NegatableCrash.ll
2008-08-07-PtrToInt-SmallerInt.ll
2009-03-17-LSR-APInt.ll
2009-03-29-SoftFloatVectorExtract.ll
2009-04-10-SinkCrash.ll
2009-04-28-i128-cmp-crash.ll
2009-11-16-BadKillsCrash.ll
2010-07-27-DAGCombineCrash.ll
2010-11-04-BigByval.ll
2010-ZeroSizedArg.ll
2011-01-06-BigNumberCrash.ll
2011-07-07-ScheduleDAGCrash.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
2012-06-08-APIntCrash.ll
2013-03-20-APFloatCrash.ll
2014-02-05-OpaqueConstants.ll
APIntLoadStore.ll
APIntParam.ll
APIntSextParam.ll
APIntZextParam.ll
BasicInstrs.ll
ConstantExprLowering.ll
ForceStackAlign.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
MachineBranchProb.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
PBQP.ll
add-with-overflow-24.ll
add-with-overflow-128.ll
add-with-overflow.ll
addr-label.ll
annotate.ll
asm-large-immediate.ll
assume.ll
badCallArgLRLLVM.ll
badFoldGEP.ll
badarg6.ll
bool-to-double.ll
bswap.ll Support generic lowering of vector bswap 2017-11-30 11:06:22 +00:00
builtin-expect.ll
call-ret0.ll
call-ret42.ll
call-void.ll
call2-ret0.ll
cast-fp.ll
cfi-sections.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
constindices.ll
crash.ll
dag-combine-crash.ll
dag-combine-ossfuzz-crash.ll [DAGCombiner] Fix for oss-fuzz bug 2018-04-17 07:22:34 +00:00
dbg_value.ll
div-neg-power-2.ll
donothing.ll
dont-remove-empty-preheader.ll
dwarf-md5.ll [MC/Dwarf] Unclamp DWARF linetables format on Darwin. 2018-09-13 13:13:50 +00:00
dwarf-source.ll [MC/Dwarf] Unclamp DWARF linetables format on Darwin. 2018-09-13 13:13:50 +00:00
edge-bundles-blockIDs.ll
empty-insertvalue.ll
empty-load-store.ll
empty-phi.ll
exception-handling.ll
expand-experimental-reductions.ll [IR] allow fast-math-flags on select of FP values 2019-05-22 15:50:46 +00:00
externally_available.ll Do not verify MachimeDominatorTree if it is not calculated 2017-03-02 12:00:10 +00:00
fastcall.ll
fneg-fabs.ll [IR] Add a dedicated FNeg IR Instruction 2018-11-13 18:15:47 +00:00
fp-to-int-invalid.ll
fp_to_int.ll
fpowi-promote.ll
fwdtwice.ll
global-ret0.ll
hello.ll
i128-addsub.ll
i128-arith.ll
icmp-illegal.ll Remove an empty line in icmp-illegal.ll . NFC 2017-02-27 16:09:44 +00:00
inline-asm-mem-clobber.ll [AVR] XFAIL a set of failing CodeGen tests 2017-02-08 10:24:18 +00:00
inline-asm-special-strings.ll
intrinsics.ll Implement strip.invariant.group 2018-07-02 04:49:30 +00:00
invalid-memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
is-constant.ll Workaround PPC backend bug in test for r346322. 2018-11-07 17:01:47 +00:00
isunord.ll
lit.local.cfg
live-debug-label.ll [CodeGen] Fix bugs in LiveDebugVariables when debug labels are generated. 2019-01-18 07:17:09 +00:00
llc-start-stop-instance-errors.ll MIR: Add method to stop after specific runs of passes 2018-12-04 17:45:12 +00:00
llc-start-stop.ll Re-submitting changes in D51550 because it failed to patch. 2018-09-24 20:47:12 +00:00
llvm-ct-intrinsics.ll
multiple-return-values-cross-block-with-invoke.ll [Hexagon] Unxfail passing tests 2017-04-13 16:05:35 +00:00
negintconst.ll
nested-select.ll
no-target.ll
opt-codegen-no-target-machine.ll [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
overflow.ll
overloaded-intrinsic-name.ll Only run the overloaded-intrinsic-name.ll test once, with FileCheck. 2017-03-01 01:56:41 +00:00
pr2625.ll
pr3288.ll
pr12507.ll
pr24662.ll Fix constant folding of fp2int to large integers 2017-03-19 16:50:25 +00:00
pr33094.ll Handle ConstantExpr correctly in SelectionDAGBuilder 2017-07-09 16:01:04 +00:00
print-add.ll
print-after.ll
print-arith-fp.ll
print-arith-int.ll
print-int.ll
print-machineinstrs.ll [SystemZ] Fix trap issue and enable expensive checks. 2017-06-23 14:30:46 +00:00
print-mul-exp.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
print-mul.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
print-shift.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
ptr-annotate.ll
ret0.ll
ret42.ll
select-cc.ll [AVR] Remove unneeded XFAILs from the Generic CodeGen tests 2019-01-20 11:16:58 +00:00
select.ll
selection-dag-determinism.ll Fix nondeterminism introduced in r353954 2019-03-26 12:18:08 +00:00
shift-int64.ll
stacksave-restore.ll
storetrunc-fp.ll
switch-lower-feature.ll
switch-lower.ll
trap.ll
undef-phi.ll
v-split.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
vector-casts.ll
vector-constantexpr.ll
vector-identity-shuffle.ll
vector-redux.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
vector.ll [AVR] Add/remove XFAILs to get the backend passing Generic CodeGen tests 2017-07-16 23:33:50 +00:00
zero-sized-array.ll