llvm/test/CodeGen/Generic
Duncan Sands d462ba8539 Teach LegalizeTypes how to expand and promote CTLZ,
CTTZ and CTPOP.  The expansion code differs from
that in LegalizeDAG in that it chooses to take the
CTLZ/CTTZ count from the Hi/Lo part depending on
whether the Hi/Lo value is zero, not on whether
CTLZ/CTTZ of Hi/Lo returned 32 (or whatever the
width of the type is) for it.  I made this change
because the optimizers may well know that Hi/Lo
is zero and exploit it.  The promotion code for
CTTZ also differs from that in LegalizeDAG: it
uses an "or" to get the right result when the
original value is zero, rather than using a compare
and select.  This also means the value doesn't
need to be zero extended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47075 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-13 18:01:53 +00:00
..
GC Setting GlobalDirective in TargetAsmInfo by default rather than 2008-01-07 02:31:11 +00:00
2002-04-14-UnexpectedUnsignedType.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
2002-04-16-StackFrameSizeAlignment.ll Update tests that need to be run through llvm-upgrade. This is necessary 2006-12-29 20:01:32 +00:00
2003-05-27-phifcmpd.ll This test needs to be upgraded in preparation for the SETCC patch. 2006-12-19 02:07:11 +00:00
2003-05-27-useboolinotherbb.ll This test needs to be upgraded for the FCmpInst patch. 2006-12-19 19:30:58 +00:00
2003-05-27-usefsubasbool.ll This test needs to be upgraded for the forthcoming FCmpInst patch. 2006-12-19 19:50:30 +00:00
2003-05-28-ManyArgs.ll This test needs to be upgraded in preparation for the SETCC patch. 2006-12-19 02:07:11 +00:00
2003-05-30-BadFoldGEP.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
2003-05-30-BadPreselectPhi.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
2003-07-06-BadIntCmp.ll This test needs to be upgraded in preparation for the SETCC patch. 2006-12-19 02:07:11 +00:00
2003-07-07-BadLongConst.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
2003-07-08-BadCastToBool.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
2003-07-29-BadConstSbyte.ll This test needs to be upgraded in preparation for the SETCC patch. 2006-12-19 02:07:11 +00:00
2004-02-08-UnwindSupport.llx
2004-05-09-LiveVarPartialRegister.llx
2005-01-18-SetUO-InfLoop.ll
2005-04-09-GlobalInPHI.ll
2005-07-12-memcpy-i64-length.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
2005-10-18-ZeroSizeStackObject.ll
2005-10-21-longlonggtu.ll For PR950: 2006-12-31 06:02:00 +00:00
2005-12-01-Crash.ll
2005-12-12-ExpandSextInreg.ll
2006-01-12-BadSetCCFold.ll avoid ambiguity in target selection 2007-07-05 22:16:19 +00:00
2006-01-18-InvalidBranchOpcodeAssert.ll
2006-02-12-InsertLibcall.ll
2006-03-01-dagcombineinfloop.ll
2006-03-27-DebugInfoNULLDeclare.ll
2006-04-11-vecload.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 For PR950: 2006-12-31 06:02:00 +00:00
2006-07-03-schedulers.ll -pre-RA-sched=none, simple, simple-noitin are gone. 2007-10-01 22:17:20 +00:00
2006-08-30-CoallescerCrash.ll
2006-09-02-LocalAllocCrash.ll
2006-09-06-SwitchLowering.ll
2006-10-27-CondFolding.ll
2006-10-29-Crash.ll
2006-11-06-MemIntrinsicExpand.ll For PR1319: 2007-04-16 17:36:08 +00:00
2006-11-20-DAGCombineCrash.ll
2006-12-16-InlineAsmCrash.ll update syntax 2007-04-28 06:03:12 +00:00
2007-01-15-LoadSelectCycle.ll For PR761: 2007-01-26 08:25:06 +00:00
2007-02-16-BranchFold.ll Test assumes tail merging is off; this must now be explicit. 2007-05-22 17:18:05 +00:00
2007-02-23-DAGCombine-Miscompile.ll Change the x86 assembly output to use tab characters to separate the 2007-07-31 20:11:57 +00:00
2007-02-25-invoke.ll Test for PR1224. 2007-02-25 21:43:21 +00:00
2007-04-08-MultipleFrameIndices.ll Don't use * in XFAIL line unless you want it to XFAIL on everything. I don't believe you can use true regular expressions here. It will just look for those keywords. Please test this on sparc and see if they still are xfailed. 2007-07-17 18:08:32 +00:00
2007-04-13-SwitchLowerBadPhi.ll Fix PR1323 : we haven't updated phi nodes in good manner :) 2007-04-13 06:53:51 +00:00
2007-04-14-BitTestsBadMask.ll Unxfail tests 2007-04-26 21:20:04 +00:00
2007-04-14-EHSelectorCrash.ll Workaround for PR1508. 2007-06-15 19:04:19 +00:00
2007-04-17-lsr-crash.ll new testcase 2007-04-17 23:43:31 +00:00
2007-04-27-BitTestsBadMask.ll Convert tests using "grep -c ... | grep ..." to use the count script. 2007-08-15 13:49:33 +00:00
2007-04-27-InlineAsm-X-Dest.ll Don't use * in XFAIL line unless you want it to XFAIL on everything. I don't believe you can use true regular expressions here. It will just look for those keywords. Please test this on sparc and see if they still are xfailed. 2007-07-17 18:08:32 +00:00
2007-04-27-LargeMemObject.ll Don't use * in XFAIL line unless you want it to XFAIL on everything. I don't believe you can use true regular expressions here. It will just look for those keywords. Please test this on sparc and see if they still are xfailed. 2007-07-17 18:08:32 +00:00
2007-04-30-LandingPadBranchFolding.ll testcase for PR1228 2007-04-30 23:34:46 +00:00
2007-05-03-EHTypeInfo.ll Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register 2007-09-07 11:39:35 +00:00
2007-05-05-Personality.ll Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register 2007-09-07 11:39:35 +00:00
2007-05-15-InfiniteRecursion.ll Fix an infinite recursion in GetNegatedExpression. 2007-05-15 17:05:43 +00:00
2007-06-06-CriticalEdgeLandingPad.ll Split eh.select / eh.typeid.for intrinsics into i32/i64 versions. This is needed, because they just "mark" register 2007-09-07 11:39:35 +00:00
2007-11-21-UndeadIllegalNode.ll Fix a bug in which node A is replaced by node B, but later 2007-11-21 16:43:19 +00:00
2007-12-17-InvokeAsm.ll Make invokes of inline asm legal. Teach codegen 2007-12-17 18:08:19 +00:00
2007-12-31-UnusedSelector.ll Fix PR1833 - eh.exception and eh.selector return two 2007-12-31 18:35:50 +00:00
2008-01-25-dag-combine-mul.ll Fix some bugs in SimplifyNodeWithTwoResults where it would call deletenode to 2008-01-26 01:09:19 +00:00
2008-01-30-LoadCrash.ll remove target triple to make this test more "generic" 2008-02-04 18:02:37 +00:00
2008-02-04-Ctlz.ll Teach LegalizeTypes how to expand and promote CTLZ, 2008-02-13 18:01:53 +00:00
2008-02-04-ExtractSubvector.ll Crashes LegalizeTypes with "Do not know how to split 2008-02-04 18:05:42 +00:00
addc-fold2.ll For PR1319: Upgrade to new test harness. 2007-04-15 20:48:50 +00:00
asm-large-immediate.ll Allow target constants to be illegal types. The target should 2007-08-25 01:00:22 +00:00
badarg6.ll This test needs to be upgraded in preparation for the SETCC patch. 2006-12-19 02:07:11 +00:00
badCallArgLRLLVM.ll Remove the trailing semicolon from function declarations in LLVM, 2007-07-16 13:37:30 +00:00
badFoldGEP.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
badlive.ll This test needs to be upgraded in preparation for the SETCC patch. 2006-12-19 02:07:11 +00:00
BasicInstrs.llx
bit-intrinsics.ll This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. 2007-08-04 01:51:18 +00:00
bool-to-double.ll
bool-vector.ll new testcase for PR1845 2008-01-10 00:30:38 +00:00
BurgBadRegAlloc.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
call2-ret0.ll
call-ret0.ll
call-ret42.ll
call-void.ll
cast-fp.ll
ConstantExprLowering.llx
constindices.ll Change all floating constants that are not exactly 2007-09-05 17:50:36 +00:00
debug-info.ll Fix the intrinsic debug call to make this match current definition. 2006-12-04 20:13:49 +00:00
dg.exp For PR1319: Upgrade to new test harness. 2007-04-15 20:48:50 +00:00
div-neg-power-2.ll
fneg-fabs.ll
fp_to_int.ll upgrade this test 2007-11-28 18:22:12 +00:00
fpowi-promote.ll For PR1319: 2007-04-16 17:36:08 +00:00
fwdtwice.ll Fix a typo in a comment. 2007-09-24 15:50:11 +00:00
global-ret0.ll
hello.ll
i128-addsub.ll add testcase for 128-bit add/sub 2007-05-17 18:22:37 +00:00
i128-arith.ll sanity check for *basic* i128 arithmetic on all hosts. 2007-02-13 23:59:21 +00:00
intrinsics.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
invalid-memcpy.ll Fix a crash on invalid code due to memcpy lowering. 2007-11-27 22:14:42 +00:00
isunord.ll the sparc v8 backend handles this correctly 2007-05-05 22:12:57 +00:00
llvm-ct-intrinsics.ll Revert the name changes for llvm.bswap to allow (and test) llvm-upgrade of 2007-04-02 00:51:15 +00:00
Makefile
negintconst.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
nested-select.ll Fix this test case. It is no longer permissible to have undefined types 2007-01-03 17:01:18 +00:00
phi-immediate-factoring.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
print-add.ll
print-arith-fp.ll
print-arith-int.ll
print-int.ll
print-mul-exp.ll
print-mul.ll
print-shift.ll
ret0.ll
ret42.ll
sched.ll Change all floating constants that are not exactly 2007-09-05 17:50:36 +00:00
select.ll Change all floating constants that are not exactly 2007-09-05 17:50:36 +00:00
shift-int64.ll
spillccr.ll Run llvm-upgrade on this test and/or upgrade intrinsic function calls. 2006-12-02 20:38:10 +00:00
stacksave-restore.ll
storetrunc-fp.ll new testcase. 2008-01-17 19:47:23 +00:00
switch-crit-edge-constant.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
switch-lower-feature-2.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
switch-lower-feature.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
switch-lower.ll Remove use of implementation keyword. 2007-03-28 02:38:26 +00:00
SwitchLowering.ll Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
trap.ll new testcase for llvm.trap. 2008-01-15 22:17:26 +00:00
v-split.ll add testcase that has been sitting in my tree for awhile. 2008-01-17 06:54:09 +00:00
vector-constantexpr.ll For PR1336: 2007-04-16 03:06:39 +00:00
vector-identity-shuffle.ll For PR1370: 2007-04-30 05:11:58 +00:00
vector.ll Change all floating constants that are not exactly 2007-09-05 17:50:36 +00:00