llvm-project/llvm/test/CodeGen/SPARC
Craig Topper e745f7c563 [LegalizeTypes] Improve ExpandIntRes_XMULO codegen.
The code previously used two BUILD_PAIRs to concatenate the two UMULO
results with 0s in the lower bits to match original VT. Then it created
an ADD and a UADDO with the original bit width. Each of those operations
need to be expanded since they have illegal types.

Since we put 0s in the lower bits before the ADD, the lower half of the
ADD result will be 0. So the lower half of the UADDO result is
solely determined by the other operand. Since the UADDO need to
be split in half, we don't really needd an operation for the lower
bits. Unfortunately, we don't see that in type legalization and end up
creating something more complicated and DAG combine or
lowering aren't always able to recover it.

This patch directly generates the narrower ADD and UADDO to avoid
needing to legalize them. Now only the MUL is done on the original
type.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D97440
2021-03-01 09:54:32 -08:00
..
32abi.ll
64abi.ll
64atomics.ll
64bit.ll
64cond.ll
64spill.ll
2006-01-22-BitConvertLegalize.ll
2007-05-09-JumpTables.ll
2007-07-05-LiveIntervalAssert.ll
2008-10-10-InlineAsmMemoryOperand.ll
2008-10-10-InlineAsmRegOperand.ll
2009-08-28-PIC.ll
2009-08-28-WeakLinkage.ll
2011-01-11-CC.ll
2011-01-11-Call.ll
2011-01-11-FrameAddr.ll
2011-01-19-DelaySlot.ll
2011-01-21-ByValArgs.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
2011-01-22-SRet.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
2011-12-03-TailDuplication.ll
2012-05-01-LowerArguments.ll
2013-05-17-CallFrame.ll Emit register names in cfi assembly directives 2020-02-25 14:00:01 -05:00
DbgValueOtherTargets.test
LeonCASAInstructionUT.ll
LeonDetectRoundChangePassUT.ll
LeonFixAllFDIVSQRTPassUT.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
LeonInsertNOPLoadPassUT.ll
LeonItinerariesUT.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
LeonSMACUMACInstructionUT.ll
analyze-branch.ll
atomics.ll
basictest.ll
blockaddr.ll
cast-sret-func.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
codemodel.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
constpool.ll
constructor.ll
ctpop.ll
disable-fsmuld-fmuls.ll
empty-functions.ll
exception.ll [CodeGen][SimplifyCFG] Teach DwarfEHPrepare to preserve DomTree 2021-01-02 01:01:19 +03:00
fail-alloca-align.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
float-constants.ll
float.ll
fp16-promote.ll [Sparc] fp16-promote.ll - Refactor check prefixes + remove unused ones 2020-11-11 18:38:22 +00:00
fp128-split.ll [SPARC] Fix fp128 load/stores 2021-01-13 14:59:50 -08:00
fp128.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
fshl.ll [Sparc] Add reduced funnel shift test case for PR47303 2020-09-07 16:17:31 +01:00
func-addr.ll
globals.ll
imm.ll
inline-asm-i-constraint-i1.ll
inlineasm-bad.ll
inlineasm-output-template.ll
inlineasm-v9.ll [Sparc] Remove cast that truncates immediate operands to 32 bits. 2020-10-02 20:14:55 -04:00
inlineasm.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
leafproc.ll
lit.local.cfg
mature-mc-support.ll
missing-sret.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
missinglabel.ll [BPI] Improve static heuristics for "cold" paths. 2020-12-23 22:47:36 +07:00
mult-alt-generic-sparc.ll
multiple-div.ll
obj-relocs.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
parts.ll
pic.ll
private.ll
readcycle.ll
reg64.ll
register-clobber.ll
rem.ll
reserved-regs.ll Emit register names in cfi assembly directives 2020-02-25 14:00:01 -05:00
select-mask.ll
sethiandn.ll
setjmp.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
soft-float.ll
soft-mul-div.ll
spill.ll
spillsize.ll
sret-secondary.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
stack-align.ll
stack-protector.ll
thread-pointer.ll
tls.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
trap.ll
umulo-128-legalisation-lowering.ll [LegalizeTypes] Improve ExpandIntRes_XMULO codegen. 2021-03-01 09:54:32 -08:00
varargs-v8.ll
varargs.ll
vector-call.ll
vector-extract-elt.ll
zerostructcall.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00