1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/test/CodeGen/SystemZ
Ulrich Weigand 5020f81c76 [SystemZ] Avoid LER on z13 due to partial register dependencies
On the z13, it turns out to be more efficient to access a full
floating-point register than just the upper half (as done e.g.
by the LE and LER instructions).

Current code already takes this into account when loading from
memory by using the LDE instruction in place of LE.  However,
we still generate LER, which shows the same performance issues
as LE in certain circumstances.

This patch changes the back-end to emit LDR instead of LER to
implement FP32 register-to-register copies on z13.

llvm-svn: 263431
2016-03-14 13:50:03 +00:00
..
Large
addr-01.ll
addr-02.ll
addr-03.ll
alias-01.ll
alloca-01.ll
alloca-02.ll
alloca-03.ll [Stack realignment] Handling of aligned allocas. 2015-11-28 11:02:32 +00:00
alloca-04.ll llvm/test/CodeGen/SystemZ/alloca-04.ll REQUIRES asserts due to -debug-pass. 2015-11-28 13:05:49 +00:00
and-01.ll
and-02.ll
and-03.ll
and-04.ll
and-05.ll
and-06.ll
and-07.ll
and-08.ll
args-01.ll [SystemZ] Add some generic (floating point support) load instructions. 2015-10-01 18:12:28 +00:00
args-02.ll [SystemZ] Add some generic (floating point support) load instructions. 2015-10-01 18:12:28 +00:00
args-03.ll [SystemZ] Add some generic (floating point support) load instructions. 2015-10-01 18:12:28 +00:00
args-04.ll [SelectionDAGBuilder] Make sure DemoteReg ends up in right reg-class. 2015-11-18 14:59:00 +00:00
args-05.ll
args-06.ll
args-07.ll [SelectionDAGBuilder] Make sure DemoteReg ends up in right reg-class. 2015-11-18 14:59:00 +00:00
args-08.ll
args-09.ll [SystemZ] Fix ABI for i128 argument and return types 2016-02-19 14:10:21 +00:00
args-10.ll [SystemZ] Fix ABI for i128 argument and return types 2016-02-19 14:10:21 +00:00
asm-01.ll
asm-02.ll
asm-03.ll
asm-04.ll
asm-05.ll
asm-06.ll
asm-07.ll
asm-08.ll
asm-09.ll
asm-10.ll
asm-11.ll
asm-12.ll
asm-13.ll
asm-14.ll
asm-15.ll
asm-16.ll
asm-17.ll [SystemZ] Fixes in the backend I/R. 2015-10-10 07:14:24 +00:00
asm-18.ll [SystemZ] CodeGen/SystemZ/asm-18.ll run with -verify-machineinstrs 2015-10-10 07:20:23 +00:00
atomic-load-01.ll
atomic-load-02.ll
atomic-load-03.ll
atomic-load-04.ll
atomic-store-01.ll
atomic-store-02.ll
atomic-store-03.ll
atomic-store-04.ll
atomicrmw-add-01.ll
atomicrmw-add-02.ll
atomicrmw-add-03.ll
atomicrmw-add-04.ll
atomicrmw-add-05.ll
atomicrmw-add-06.ll
atomicrmw-and-01.ll
atomicrmw-and-02.ll
atomicrmw-and-03.ll
atomicrmw-and-04.ll
atomicrmw-and-05.ll
atomicrmw-and-06.ll
atomicrmw-minmax-01.ll
atomicrmw-minmax-02.ll
atomicrmw-minmax-03.ll
atomicrmw-minmax-04.ll
atomicrmw-nand-01.ll
atomicrmw-nand-02.ll
atomicrmw-nand-03.ll
atomicrmw-nand-04.ll
atomicrmw-or-01.ll
atomicrmw-or-02.ll
atomicrmw-or-03.ll
atomicrmw-or-04.ll
atomicrmw-or-05.ll
atomicrmw-or-06.ll
atomicrmw-sub-01.ll
atomicrmw-sub-02.ll
atomicrmw-sub-03.ll
atomicrmw-sub-04.ll
atomicrmw-sub-05.ll
atomicrmw-sub-06.ll
atomicrmw-xchg-01.ll
atomicrmw-xchg-02.ll
atomicrmw-xchg-03.ll
atomicrmw-xchg-04.ll
atomicrmw-xor-01.ll
atomicrmw-xor-02.ll
atomicrmw-xor-03.ll
atomicrmw-xor-04.ll
atomicrmw-xor-05.ll
atomicrmw-xor-06.ll
branch-01.ll
branch-02.ll
branch-03.ll
branch-04.ll
branch-05.ll
branch-06.ll
branch-07.ll
branch-08.ll
branch-09.ll
branch-10.ll
bswap-01.ll
bswap-02.ll
bswap-03.ll
bswap-04.ll
bswap-05.ll
call-01.ll
call-02.ll
call-03.ll
cmpxchg-01.ll
cmpxchg-02.ll
cmpxchg-03.ll
cmpxchg-04.ll
cond-load-01.ll
cond-load-02.ll
cond-move-01.ll
cond-store-01.ll
cond-store-02.ll
cond-store-03.ll
cond-store-04.ll
cond-store-05.ll
cond-store-06.ll
cond-store-07.ll
cond-store-08.ll
ctpop-01.ll
dag-combine-01.ll [DAGCombiner] Bugfix for lost chain depenedency. 2015-11-21 13:25:07 +00:00
fp-abs-01.ll [SystemZ] Add some generic (floating point support) load instructions. 2015-10-01 18:12:28 +00:00
fp-abs-02.ll [SystemZ] Add some generic (floating point support) load instructions. 2015-10-01 18:12:28 +00:00
fp-add-01.ll
fp-add-02.ll [SystemZ] Tie operands in SystemZShorteInst if MI becomes 2-address. 2015-10-26 15:03:07 +00:00
fp-add-03.ll
fp-cmp-01.ll
fp-cmp-02.ll [SystemZ] Don't forget the CC def op on LTEBRCompare pseudos 2015-10-26 15:03:32 +00:00
fp-cmp-03.ll
fp-cmp-04.ll
fp-cmp-05.ll [SystemZ] Comment fix in test/CodeGen/SystemZ/fp-cmp-05.ll 2015-10-20 15:05:54 +00:00
fp-const-01.ll
fp-const-02.ll [SystemZ] Add some generic (floating point support) load instructions. 2015-10-01 18:12:28 +00:00
fp-const-03.ll
fp-const-04.ll
fp-const-05.ll
fp-const-06.ll
fp-const-07.ll
fp-const-08.ll
fp-const-09.ll
fp-conv-01.ll
fp-conv-02.ll
fp-conv-03.ll
fp-conv-04.ll
fp-conv-05.ll
fp-conv-06.ll
fp-conv-07.ll
fp-conv-08.ll
fp-conv-09.ll
fp-conv-10.ll
fp-conv-11.ll
fp-conv-12.ll
fp-conv-13.ll
fp-conv-14.ll
fp-copysign-01.ll
fp-div-01.ll
fp-div-02.ll
fp-div-03.ll
fp-libcall.ll [SystemZ] Fix expansion of ISD::FPOW and ISD::FSINCOS 2015-09-21 17:35:45 +00:00
fp-move-01.ll [SystemZ] Avoid LER on z13 due to partial register dependencies 2016-03-14 13:50:03 +00:00
fp-move-02.ll
fp-move-03.ll
fp-move-04.ll
fp-move-05.ll [SystemZ] Also clear kill flag for index reg in splitMove(). 2015-10-26 15:03:41 +00:00
fp-move-06.ll
fp-move-07.ll
fp-move-08.ll
fp-move-09.ll
fp-move-10.ll
fp-move-11.ll
fp-move-12.ll [SystemZ] Avoid LER on z13 due to partial register dependencies 2016-03-14 13:50:03 +00:00
fp-mul-01.ll
fp-mul-02.ll
fp-mul-03.ll
fp-mul-04.ll
fp-mul-05.ll
fp-mul-06.ll
fp-mul-07.ll
fp-mul-08.ll
fp-mul-09.ll
fp-neg-01.ll [SystemZ] Add some generic (floating point support) load instructions. 2015-10-01 18:12:28 +00:00
fp-round-01.ll
fp-round-02.ll
fp-sincos-01.ll [SystemZ] Fix expansion of ISD::FPOW and ISD::FSINCOS 2015-09-21 17:35:45 +00:00
fp-sqrt-01.ll
fp-sqrt-02.ll
fp-sqrt-03.ll
fp-sub-01.ll
fp-sub-02.ll
fp-sub-03.ll
frame-01.ll
frame-02.ll
frame-03.ll
frame-04.ll
frame-05.ll
frame-06.ll
frame-07.ll
frame-08.ll
frame-09.ll
frame-10.ll
frame-11.ll
frame-13.ll
frame-14.ll
frame-15.ll
frame-16.ll
frame-17.ll
frame-18.ll
frame-19.ll
frame-20.ll
htm-intrinsics.ll
insert-01.ll
insert-02.ll
insert-03.ll
insert-04.ll
insert-05.ll
insert-06.ll
int-abs-01.ll
int-add-01.ll
int-add-02.ll
int-add-03.ll
int-add-04.ll
int-add-05.ll
int-add-06.ll
int-add-07.ll
int-add-08.ll
int-add-09.ll
int-add-10.ll
int-add-11.ll
int-add-12.ll
int-add-13.ll
int-add-14.ll
int-add-15.ll
int-add-16.ll
int-cmp-01.ll
int-cmp-02.ll
int-cmp-03.ll
int-cmp-04.ll
int-cmp-05.ll
int-cmp-06.ll
int-cmp-07.ll
int-cmp-08.ll
int-cmp-09.ll
int-cmp-10.ll
int-cmp-11.ll
int-cmp-12.ll
int-cmp-13.ll
int-cmp-14.ll
int-cmp-15.ll
int-cmp-16.ll
int-cmp-17.ll
int-cmp-18.ll
int-cmp-19.ll
int-cmp-20.ll
int-cmp-21.ll
int-cmp-22.ll
int-cmp-23.ll
int-cmp-24.ll
int-cmp-25.ll
int-cmp-26.ll
int-cmp-27.ll
int-cmp-28.ll
int-cmp-29.ll
int-cmp-30.ll
int-cmp-31.ll
int-cmp-32.ll
int-cmp-33.ll
int-cmp-34.ll
int-cmp-35.ll
int-cmp-36.ll
int-cmp-37.ll
int-cmp-38.ll
int-cmp-39.ll
int-cmp-40.ll
int-cmp-41.ll
int-cmp-42.ll
int-cmp-43.ll
int-cmp-44.ll [SystemZ] LTGFR use regclass should be GR32, not GR64. 2015-10-26 15:03:49 +00:00
int-cmp-45.ll
int-cmp-46.ll
int-cmp-47.ll
int-cmp-48.ll
int-cmp-49.ll
int-cmp-50.ll
int-cmp-51.ll [SystemZ] Make the CCRegs regclass non-allocatable. 2015-10-29 16:13:55 +00:00
int-cmp-52.ll [SystemZ] Fix assertion failure in adjustSubwordCmp 2015-12-16 18:04:06 +00:00
int-cmp-53.ll [SystemZ] Fix wrong-code generation for certain always-false conditions 2016-02-01 18:31:19 +00:00
int-const-01.ll
int-const-02.ll
int-const-03.ll
int-const-04.ll
int-const-05.ll
int-const-06.ll
int-conv-01.ll
int-conv-02.ll
int-conv-03.ll
int-conv-04.ll
int-conv-05.ll
int-conv-06.ll
int-conv-07.ll
int-conv-08.ll
int-conv-09.ll
int-conv-10.ll
int-conv-11.ll
int-div-01.ll
int-div-02.ll
int-div-03.ll
int-div-04.ll
int-div-05.ll
int-div-06.ll
int-move-01.ll
int-move-02.ll
int-move-03.ll
int-move-04.ll
int-move-05.ll
int-move-06.ll
int-move-07.ll
int-move-08.ll
int-move-09.ll
int-mul-01.ll
int-mul-02.ll
int-mul-03.ll
int-mul-04.ll
int-mul-05.ll
int-mul-06.ll
int-mul-07.ll
int-mul-08.ll
int-neg-01.ll
int-neg-02.ll
int-sub-01.ll
int-sub-02.ll
int-sub-03.ll
int-sub-04.ll
int-sub-05.ll
int-sub-06.ll
int-sub-07.ll
int-sub-08.ll
int-sub-09.ll
la-01.ll
la-02.ll
la-03.ll
la-04.ll
lit.local.cfg
loop-01.ll
mature-mc-support.ll
memchr-01.ll [SystemZ] Make the CCRegs regclass non-allocatable. 2015-10-29 16:13:55 +00:00
memchr-02.ll
memcmp-01.ll
memcmp-02.ll
memcpy-01.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memcpy-02.ll
memset-01.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memset-02.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memset-03.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
memset-04.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
or-01.ll
or-02.ll
or-03.ll
or-04.ll
or-05.ll
or-06.ll
or-07.ll
or-08.ll
prefetch-01.ll
risbg-01.ll
risbg-02.ll
risbg-03.ll
rnsbg-01.ll
rosbg-01.ll
rxsbg-01.ll
selectcc-01.ll
selectcc-02.ll
selectcc-03.ll
serialize-01.ll
setcc-01.ll
setcc-02.ll
shift-01.ll
shift-02.ll
shift-03.ll
shift-04.ll
shift-05.ll
shift-06.ll
shift-07.ll
shift-08.ll
shift-09.ll
shift-10.ll
spill-01.ll [MachineVerifier] Analyze MachineMemOperands for mem-to-mem moves. 2015-10-29 08:28:35 +00:00
strcmp-01.ll
strcmp-02.ll
strcpy-01.ll
strlen-01.ll
strlen-02.ll
tail-call-mem-intrinsics.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
tls-01.ll
tls-02.ll
tls-03.ll
tls-04.ll
tls-05.ll
tls-06.ll
tls-07.ll
unaligned-01.ll
vec-abi-align.ll
vec-abs-01.ll
vec-abs-02.ll
vec-abs-03.ll
vec-abs-04.ll
vec-abs-05.ll
vec-add-01.ll
vec-and-01.ll
vec-and-02.ll
vec-and-03.ll
vec-args-01.ll
vec-args-02.ll
vec-args-03.ll
vec-args-04.ll Make MergeConsecutiveStores look at other stores on same chain 2015-08-28 17:31:28 +00:00
vec-args-05.ll Make MergeConsecutiveStores look at other stores on same chain 2015-08-28 17:31:28 +00:00
vec-args-06.ll
vec-args-07.ll
vec-args-error-01.ll
vec-args-error-02.ll
vec-args-error-03.ll
vec-args-error-04.ll
vec-args-error-05.ll
vec-args-error-06.ll
vec-args-error-07.ll
vec-args-error-08.ll
vec-cmp-01.ll
vec-cmp-02.ll
vec-cmp-03.ll
vec-cmp-04.ll
vec-cmp-05.ll
vec-cmp-06.ll
vec-combine-01.ll
vec-combine-02.ll
vec-const-01.ll
vec-const-02.ll
vec-const-03.ll
vec-const-04.ll
vec-const-05.ll
vec-const-06.ll
vec-const-07.ll
vec-const-08.ll
vec-const-09.ll
vec-const-10.ll
vec-const-11.ll
vec-const-12.ll
vec-const-13.ll
vec-const-14.ll
vec-const-15.ll
vec-const-16.ll
vec-const-17.ll
vec-const-18.ll
vec-conv-01.ll
vec-conv-02.ll
vec-ctlz-01.ll
vec-ctpop-01.ll
vec-cttz-01.ll
vec-div-01.ll
vec-extract-01.ll
vec-extract-02.ll
vec-intrinsics.ll
vec-log-01.ll
vec-max-01.ll
vec-max-02.ll
vec-max-03.ll
vec-max-04.ll
vec-min-01.ll
vec-min-02.ll
vec-min-03.ll
vec-min-04.ll
vec-move-01.ll
vec-move-02.ll
vec-move-03.ll
vec-move-04.ll
vec-move-05.ll
vec-move-06.ll
vec-move-07.ll
vec-move-08.ll
vec-move-09.ll
vec-move-10.ll
vec-move-11.ll
vec-move-12.ll
vec-move-13.ll
vec-move-14.ll
vec-move-15.ll
vec-move-16.ll
vec-move-17.ll
vec-mul-01.ll
vec-mul-02.ll
vec-neg-01.ll
vec-or-01.ll
vec-or-02.ll
vec-perm-01.ll
vec-perm-02.ll
vec-perm-03.ll
vec-perm-04.ll
vec-perm-05.ll
vec-perm-06.ll
vec-perm-07.ll
vec-perm-08.ll
vec-perm-09.ll
vec-perm-10.ll
vec-perm-11.ll
vec-perm-12.ll [SystemZ] Fix assertion failure in tryBuildVectorShuffle 2015-09-15 14:27:46 +00:00
vec-perm-13.ll [SystemZ] Fix another assertion failure in tryBuildVectorShuffle 2015-10-08 17:46:59 +00:00
vec-round-01.ll
vec-shift-01.ll
vec-shift-02.ll
vec-shift-03.ll
vec-shift-04.ll
vec-shift-05.ll
vec-shift-06.ll
vec-shift-07.ll
vec-sqrt-01.ll
vec-sub-01.ll [SystemZ] Avoid LER on z13 due to partial register dependencies 2016-03-14 13:50:03 +00:00
vec-xor-01.ll
xor-01.ll Let MachineVerifier be aware of mem-to-mem instructions. 2015-10-21 07:39:47 +00:00
xor-02.ll
xor-03.ll
xor-04.ll
xor-05.ll
xor-06.ll
xor-07.ll
xor-08.ll