llvm-project/llvm/test/CodeGen/Mips
Petar Avramovic c98b26d326 [MIPS GlobalISel] Select any extending load and truncating store
Make behavior of G_LOAD in widenScalar same as for G_ZEXTLOAD and
G_SEXTLOAD. That is perform widenScalarDst to size given by the target
and avoid additional checks in common code. Targets can reorder or add
additional rules in LegalizeRuleSet for the opcode to achieve desired
behavior.

Select extending load that does not have specified type of extension
into zero extending load.

Select truncating store that stores number of bytes indicated by size
in MachineMemoperand.

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

llvm-svn: 353520
2019-02-08 14:27:23 +00:00
..
Fast-ISel Replace "no-frame-pointer-*" function attributes with "frame-pointer" 2019-01-14 10:55:55 +00:00
GlobalISel [MIPS GlobalISel] Select any extending load and truncating store 2019-02-08 14:27:23 +00:00
cconv [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25 2019-01-17 21:50:37 +00:00
compactbranches Followup on Proposal to move MIR physical register namespace to '$' sigil. 2018-01-31 22:04:26 +00:00
cstmaterialization [mips] Add microMIPS specific addressing patterns. 2018-06-20 22:40:12 +00:00
indirect-jump-hazard [DAGCombine] Improve Load-Store Forwarding 2018-10-10 14:15:52 +00:00
instverify Followup on Proposal to move MIR physical register namespace to '$' sigil. 2018-01-31 22:04:26 +00:00
llvm-ir [mips] Support for +abs2008 attribute 2019-01-28 14:59:30 +00:00
longbranch [Mips] Supplement long branch pseudo instructions 2018-11-05 14:37:41 +00:00
micromips-sizereduction [mips][microMIPS] Extending size reduction pass with MOVEP 2018-09-19 18:46:29 +00:00
mips32r6
mips64r6
mirparser [mips] Correct predicates for loads, bit manipulation instructions and some pseudos 2018-06-20 19:59:58 +00:00
msa [mips] Support for +abs2008 attribute 2019-01-28 14:59:30 +00:00
tailcall [SelectionDAG] Provide adequate register class for RegisterSDNode 2018-02-09 13:55:25 +00:00
2008-06-05-Carry.ll
2008-07-03-SRet.ll
2008-07-06-fadd64.ll
2008-07-07-FPExtend.ll
2008-07-07-Float2Int.ll Regenerate FP_TO_INT tests. 2018-10-27 15:00:38 +00:00
2008-07-07-IntDoubleConvertions.ll
2008-07-15-InternalConstant.ll
2008-07-15-SmallSection.ll
2008-07-16-SignExtInReg.ll
2008-07-22-Cstpool.ll
2008-07-23-fpcmp.ll
2008-07-29-icmp.ll
2008-07-31-fcopysign.ll
2008-08-01-AsmInline.ll
2008-08-03-ReturnDouble.ll
2008-08-03-fabs64.ll
2008-08-04-Bitconvert.ll
2008-08-06-Alloca.ll
2008-08-07-CC.ll
2008-08-07-FPRound.ll
2008-08-08-ctlz.ll
2008-10-13-LegalizerBug.ll
2008-11-10-xint_to_fp.ll
2009-11-16-CstPoolLoad.ll
2010-07-20-Switch.ll Emit a left-shift instead of a power-of-two multiply for jump-tables 2018-05-16 08:58:26 +00:00
2010-11-09-CountLeading.ll
2010-11-09-Mul.ll
2011-05-26-BranchKillsVreg.ll
2012-12-12-ExpandMemcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
2013-11-18-fp64-const0.ll
DbgValueOtherTargets.test
abicalls.ll
abiflags-xx.ll
abiflags32.ll
addc.ll
addi.ll
address-selection.ll [mips] Add microMIPS specific addressing patterns. 2018-06-20 22:40:12 +00:00
addressing-mode.ll
adjust-callstack-sp.ll
align16.ll
alloca.ll
alloca16.ll
analyzebranch.ll Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding" 2018-02-27 16:59:10 +00:00
and1.ll
ase_warnings.ll [mips] Warn when crc, ginv, virt flags are used with too old revision 2018-07-04 19:26:31 +00:00
asm-large-immediate.ll
assertzext-trunc.ll
atomic.ll RegAllocFast: Leave unassigned virtreg entries in map 2018-11-07 06:57:03 +00:00
atomic64.ll RegAllocFast: Leave unassigned virtreg entries in map 2018-11-07 06:57:03 +00:00
atomicCmpSwapPW.ll RegAllocFast: Leave unassigned virtreg entries in map 2018-11-07 06:57:03 +00:00
atomicops.ll
beqzc.ll
beqzc1.ll
biggot.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
blez_bgez.ll [mips] Add microMIPS case to the tests and regenerate assertions using update_llc_test_checks.py. NFC 2018-07-13 15:03:24 +00:00
blockaddr.ll
br-jmp.ll Reland r331175: "[mips] Fix the predicates of jump and branch and link instructions" 2018-05-01 13:06:49 +00:00
branch-relaxation-with-hazard.ll [mips] Merge MipsLongBranch and MipsHazardSchedule passes 2018-05-22 13:24:38 +00:00
brconeq.ll
brconeqk.ll
brconeqz.ll
brconge.ll
brcongt.ll
brconle.ll
brconlt.ll
brconne.ll
brconnek.ll
brconnez.ll
brdelayslot.ll [mips] Support shrink-wrapping 2018-06-29 16:37:16 +00:00
brind-tailcall.ll [mips] Guard indirect and tailcall pseudo instructions correctly. 2017-11-08 11:13:44 +00:00
brind.ll
brsize3.ll
brsize3a.ll
brundef.ll
bswap.ll [mips] Remove -allow-deprecated-dag-overlap flag from tests. NFC 2018-10-03 22:02:23 +00:00
buildpairextractelementf64.ll
buildpairf64-extractelementf64-implicit-sp.ll [mips] Prevent shrink-wrap for BuildPairF64, ExtractElementF64 when they use $sp 2018-08-29 14:07:14 +00:00
cache-intrinsic.ll
call-optimization.ll
cfi_offset.ll
check-adde-redundant-moves.ll
check-noat.ll
ci2.ll
cins.ll
cmov.ll
cmplarge.ll
coalesce-partial-redundant-reguse-terminator.mir [RegisterCoalescing] Don't move COPY if it would interfere with another value 2018-03-28 06:01:30 +00:00
const-mult.ll [DAGCombiner] Teach DAG combiner that A-(B-C) can be folded to A+(C-B) 2018-07-28 00:27:25 +00:00
const1.ll
const4a.ll
const6.ll
const6a.ll
constantfp0.ll
constraint-c-err.ll [mips] Replace assert by an error message 2017-12-29 19:18:24 +00:00
constraint-c.ll [mips] Replace assert by an error message 2017-12-29 19:18:24 +00:00
countleading.ll [mips] Removal of microMIPS64R6 2017-12-11 11:21:40 +00:00
cprestore.ll
ctlz-v.ll
ctlz.ll
cttz-v.ll
dagcombine-store-gep-chain-slow.ll [DAGCombine] Disable finding better chains for stores at O0 2017-11-28 04:07:59 +00:00
dagcombine_crash.ll
delay-slot-fill-forward.ll
delay-slot-kill.ll [mips] Sign extend i32 return values on MIPS64 2018-07-26 10:59:35 +00:00
dext.ll
dins.ll Fix typo in test/CodeGen/Mips/dins.ll 2018-07-23 23:19:53 +00:00
disable-tail-merge.ll
div.ll
div_rem.ll
divrem.ll
divu.ll
divu_remu.ll
double2int.ll [mips] Fix predicate for the MipsTruncIntFP pattern 2018-07-18 14:11:22 +00:00
dsp-patterns-cmp-vselect.ll
dsp-patterns.ll
dsp-r1.ll
dsp-r2.ll
dsp-spill-reload.ll [mips] Enable spilling and reloading of the dsp register set. 2017-10-03 13:45:49 +00:00
dsp-vec-load-store.ll
dynamic-stack-realignment.ll
eh-dwarf-cfa.ll
eh-return32.ll
eh-return64.ll
eh.ll
ehframe-indirect.ll
elf_eflags.ll
emergency-spill-slot-near-fp.ll
emit-big-cst.ll
emutls_generic.ll [TLS] use emulated TLS if the target supports only this mode 2018-02-28 17:48:55 +00:00
ex2.ll
extins.ll
f16abs.ll
f32-to-i64-single-float.ll [MIPS] Fix illegal type assert in single-float mode 2018-09-11 15:32:47 +00:00
fabs.ll [mips] Support for +abs2008 attribute 2019-01-28 14:59:30 +00:00
fastcc.ll [DAGCombine] Improve alias analysis for chain of independent stores. 2018-11-08 19:14:20 +00:00
fastcc_byval.ll [mips] Generate memory dependencies for byVal arguments 2018-02-22 13:40:42 +00:00
fcmp.ll [mips] Removal of microMIPS64R6 2017-12-11 11:21:40 +00:00
fcopysign-f32-f64.ll Reland "[mips] Fix the target specific instruction verifier" 2017-12-18 15:56:40 +00:00
fcopysign.ll Reland "[mips] Fix the target specific instruction verifier" 2017-12-18 15:56:40 +00:00
fixdfsf.ll
fmadd1.ll
fneg.ll
fp-contract.ll [mips] Fix how compiler fuse instructions to fmadd/fmsub 2018-04-27 13:30:27 +00:00
fp-indexed-ls.ll
fp-spill-reload.ll
fp16-promote.ll
fp16instrinsmc.ll
fp16mix.ll
fp16static.ll
fp64a.ll
fpbr.ll
fpneeded.ll
fpnotneeded.ll
fpxx.ll
frame-address.ll
frameindex.ll [mips] Select the correct instruction for computing frameindexes 2018-06-01 10:07:10 +00:00
frem.ll
global-address.ll
global-pointer-reg.ll
gpopt-explict-section.ll
gpreg-lazy-binding.ll
gprestore.ll [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25 2019-01-17 21:50:37 +00:00
helloworld.ll
hf1_body.ll
hf16_1.ll
hf16call32.ll
hf16call32_body.ll Use .set instead of = when printing assignment in assembly output 2018-03-27 16:44:41 +00:00
hfptrcall.ll
i32k.ll
i64arg.ll
imm.ll
indirectcall.ll
init-array.ll
inlineasm-assembler-directives.ll
inlineasm-cnstrnt-bad-I-1.ll
inlineasm-cnstrnt-bad-J.ll
inlineasm-cnstrnt-bad-K.ll
inlineasm-cnstrnt-bad-L.ll
inlineasm-cnstrnt-bad-N.ll
inlineasm-cnstrnt-bad-O.ll
inlineasm-cnstrnt-bad-P.ll
inlineasm-cnstrnt-bad-l1.ll [mips] Fix 'l' constraint handling for types smaller than 32 bits 2018-02-12 12:21:55 +00:00
inlineasm-cnstrnt-reg.ll [mips] Fix 'l' constraint handling for types smaller than 32 bits 2018-02-12 12:21:55 +00:00
inlineasm-cnstrnt-reg64.ll
inlineasm-constraint_ZC_2.ll
inlineasm-opcode-bad-y.ll [mips] Support 'y' operand code to print exact log2 of the operand 2018-02-07 12:36:39 +00:00
inlineasm-operand-code.ll [mips] Support 'y' operand code to print exact log2 of the operand 2018-02-07 12:36:39 +00:00
inlineasm64.ll
inlineasm_constraint.ll
inlineasm_constraint_R.ll
inlineasm_constraint_ZC.ll
inlineasm_constraint_m.ll
inlineasmmemop.ll [mips] Handle 'M' and 'L' operand codes for memory operands 2018-02-07 12:36:33 +00:00
insn-zero-size-bb.ll
int-to-float-conversion.ll
internalfunc.ll
interrupt-attr-64-error.ll
interrupt-attr-args-error.ll
interrupt-attr-error.ll
interrupt-attr.ll
jtstat.ll
jump-table-mul.ll Emit a left-shift instead of a power-of-two multiply for jump-tables 2018-05-16 08:58:26 +00:00
jumptable_labels.ll
l3mc.ll
largeimm1.ll
largeimmprinting.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
lazy-binding.ll
lb1.ll
lbu1.ll
lcb2.ll
lcb3c.ll
lcb4a.ll [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
lcb5.ll
lh1.ll
lhu1.ll
lit.local.cfg
llcarry.ll
load-store-left-right.ll
long-call-attr.ll [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25 2019-01-17 21:50:37 +00:00
long-call-mcount.ll [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25 2019-01-17 21:50:37 +00:00
long-calls.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
longbranch.ll [mips] Involves microMIPS's jump in the analyzable branch set 2018-08-29 14:53:55 +00:00
lw16-base-reg.ll [mips] Removal of microMIPS64R6 2017-12-11 11:21:40 +00:00
machineverifier.ll
madd-msub.ll [mips] Remove -allow-deprecated-dag-overlap flag from tests. NFC 2018-10-03 22:02:23 +00:00
mature-mc-support.ll
mbrsize4a.ll
memcpy.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
micromips-addiu.ll
micromips-addu16.ll
micromips-and16.ll
micromips-andi.ll
micromips-ase-function-attribute.ll [mips] Set microMIPS ASE flag 2017-11-24 14:00:47 +00:00
micromips-atomic.ll [mips] Fix atomic operations at O0, v3 2018-07-05 09:27:05 +00:00
micromips-atomic1.ll
micromips-attr.ll
micromips-b-range.ll [mips][micromips] Fix how values in .gcc_except_table are calculated 2019-02-07 22:57:33 +00:00
micromips-compact-branches.ll
micromips-compact-jump.ll
micromips-delay-slot-jr.ll
micromips-delay-slot.ll
micromips-directives.ll
micromips-eva.mir [MIR] Add support for debug metadata for fixed stack objects 2018-04-25 18:58:06 +00:00
micromips-gcc-except-table.ll [mips][micromips] Fix how values in .gcc_except_table are calculated 2018-10-16 08:27:28 +00:00
micromips-gp-rc.ll
micromips-jal.ll
micromips-li.ll
micromips-load-effective-address.ll
micromips-lwc1-swc1.ll [mips] Removal of microMIPS64R6 2017-12-11 11:21:40 +00:00
micromips-mtc-mfc.ll [Mips] Conditionally remove successor block 2018-11-01 10:10:42 +00:00
micromips-not16.ll
micromips-or16.ll
micromips-rdhwr-directives.ll
micromips-shift.ll
micromips-short-delay-slot.mir [MIR] Add support for debug metadata for fixed stack objects 2018-04-25 18:58:06 +00:00
micromips-subu16.ll
micromips-sw-lw-16.ll
micromips-target-external-symbol-reloc.ll [mips][micromips] Fix JmpLink to TargetExternalSymbol 2018-11-01 13:57:54 +00:00
micromips-xor16.ll
micromips64-unsupported.ll [mips] Mark microMIPS64 as being unsupported. 2018-06-19 16:05:44 +00:00
mips-shf-gprel.s
mips3-spill-slot.ll [mips] Fix spill slot for mips3, n64 abi 2018-06-11 16:50:28 +00:00
mips16-hf-attr-2.ll
mips16-hf-attr.ll
mips16_32_1.ll
mips16_32_3.ll
mips16_32_4.ll
mips16_32_5.ll
mips16_32_6.ll
mips16_32_7.ll
mips16_32_8.ll
mips16_32_9.ll
mips16_32_10.ll
mips16_fpret.ll
mips16ex.ll Use .set instead of = when printing assignment in assembly output 2018-03-27 16:44:41 +00:00
mips16fpe.ll
mips64-f128-call.ll
mips64-f128.ll [mips] Pick the right variant of DINS upfront and enable target instruction verification 2017-09-14 10:58:00 +00:00
mips64-libcall.ll
mips64-sret.ll
mips64directive.ll
mips64ext.ll
mips64extins.ll [mips] Pick the right variant of DINS upfront and enable target instruction verification 2017-09-14 10:58:00 +00:00
mips64fpimm0.ll
mips64fpldst.ll [mips] Removal of microMIPS64R6 2017-12-11 11:21:40 +00:00
mips64imm.ll
mips64instrs.ll
mips64intldst.ll
mips64lea.ll
mips64muldiv.ll
mips64shift.ll [mips] Removal of microMIPS64R6 2017-12-11 11:21:40 +00:00
mips64signextendsesf.ll [CodeGen] Always use `printReg` to print registers in both MIR and debug 2017-11-30 16:12:24 +00:00
mips64sinttofpsf.ll
mipslopat.ll
misha.ll
mno-ldc1-sdc1.ll
mul.ll
mulll.ll
mulull.ll
nacl-align.ll
nacl-branch-delay.ll
nacl-reserved-regs.ll
named-register-n32.ll
named-register-n64.ll
named-register-o32.ll
neg1.ll
nmadd.ll [mips] Correct the instruction predicates for microMIPSr3 2017-10-10 20:52:53 +00:00
no-odd-spreg-msa.ll
no-odd-spreg.ll [mips] Remove -allow-deprecated-dag-overlap flag from tests. NFC 2018-10-03 22:02:23 +00:00
nomips16.ll
not1.ll
null-streamer.ll
null.ll
o32_cc.ll
o32_cc_byval.ll [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25 2019-01-17 21:50:37 +00:00
o32_cc_vararg.ll [DAGCombine] Improve Load-Store Forwarding 2018-10-10 14:15:52 +00:00
octeon.ll
octeon_popcnt.ll
optimize-fp-math.ll
optimize-pic-o0.ll
or1.ll
pbqp-reserved-physreg.ll
powif64_16.ll
pr33682.ll
pr33978.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
pr34975.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
pr35071.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
pr36061.ll [mips] Fix incorrect sign extension for fpowi libcall 2018-01-30 16:24:10 +00:00
prevent-hoisting.ll [CodeGen] Unify MBB reference format in both MIR and debug output 2017-12-04 17:18:51 +00:00
private-addr.ll
private.ll
ra-allocatable.ll
rdhwr-directives.ll
reloc-jalr.ll [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25 2019-01-17 21:50:37 +00:00
rem.ll
remat-immed-load.ll
remu.ll
return-vector.ll
return_address.ll
rotate.ll
s2rem.ll
sb1.ll
sel1c.ll
sel2c.ll
selTBteqzCmpi.ll
selTBtnezCmpi.ll
selTBtnezSlti.ll
select.ll [Mips] Return true in enableMultipleCopyHints(). 2018-02-23 08:30:15 +00:00
selectcc.ll
selectiondag-optlevel.ll
seleq.ll
seleqk.ll
selgek.ll
selgt.ll
selle.ll
selltk.ll
selne.ll
selnek.ll
selpat.ll
setcc-se.ll
seteq.ll
seteqz.ll
setge.ll
setgek.ll
setle.ll
setlt.ll
setltk.ll
setne.ll
setuge.ll
setugt.ll
setule.ll
setult.ll
setultk.ll
sh1.ll
shift-parts.ll
shrink-wrap-buildpairf64-extractelementf64.mir [mips] Prevent shrink-wrap for BuildPairF64, ExtractElementF64 when they use $sp 2018-08-29 14:07:14 +00:00
shrink-wrapping.ll [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25 2019-01-17 21:50:37 +00:00
simplebr.ll
sint-fp-store_pattern.ll
sitofp-selectcc-opt.ll
sll-micromips-r6-encoding.mir Followup on Proposal to move MIR physical register namespace to '$' sigil. 2018-01-31 22:04:26 +00:00
sll1.ll
sll2.ll
slt.ll
small-section-reserve-gp.ll
spill-copy-acreg.ll
sr1.ll
sra1.ll
sra2.ll
srl1.ll
srl2.ll
stack-alignment.ll
stackcoloring.ll
stacksize.ll
start-asm-file.ll
stchar.ll
stldst.ll
sub1.ll
sub2.ll
swzero.ll
tail16.ll
tglobaladdr-wrapper.ll [mips] Move out the WrapperPat declaration from the NotInMicroMips predicate 2018-07-21 16:16:03 +00:00
thread-pointer.ll
tls-alias.ll
tls-models.ll
tls.ll [mips] Add a pattern for 64-bit GPR variant of the `rdhwr` instruction 2018-09-11 09:57:25 +00:00
tls16.ll
tls16_2.ll
tnaked.ll
trap.ll
trap1.ll
uitofp.ll
ul1.ll
unaligned-memops-mapping.mir [mips] Correct the definitions of the unaligned word memory operation instructions 2018-04-19 13:33:51 +00:00
unaligned-memops.ll [mips] Correct the definitions of the unaligned word memory operation instructions 2018-04-19 13:33:51 +00:00
unalignedload.ll
unsized-global.ll [MIPS] Don't crash on unsized extern types with -mgpopt 2018-01-26 15:56:14 +00:00
v2i16tof32.ll [mips] Provide additional DSP bitconvert patterns 2017-12-13 10:13:35 +00:00
vector-load-store.ll
vector-setcc.ll
weak.ll
whitespace.ll [mips] fix asmstring of Ext and Ins instructions and mips16 JALRC/JRC 2017-11-27 14:25:36 +00:00
xor1.ll
xray-mips-attribute-instrumentation.ll
xray-section-group.ll [XRay][CodeGen] Use the current function symbol as the associated symbol for the instrumentation map 2017-09-14 07:08:23 +00:00
zeroreg.ll