1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
Ulrich Weigand fc4484e0da [SystemZ] Fix/optimize vec_load_len and related intrinsics
When using vec_load/store_len_r with an immediate length operand
of 16 or larger, LLVM will currently emit an VLRL/VSTRL instruction
with that immediate.  This creates a valid encoding (which should be
supported by the assembler), but always traps at runtime.  This patch
fixes this by not creating VLRL/VSTRL in those cases.

This would result in loading the length into a register and
calling VLRLR/VSTRLR instead.  However, these operations with
a length of 15 or larger are in fact simply equivalent to a
full vector load or store.  And in fact the same holds true for
vec_load/store_len as well.

Therefore, add a DAGCombine rule to replace those operations with
plain vector loads or stores if the length is known at compile
time and equal or larger to 15.
2020-05-06 21:15:58 +02:00
..
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2017-10-06 13:59:28 +00:00
2020-02-04 10:32:45 -05:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2018-10-27 15:00:38 +00:00
2018-10-27 15:00:38 +00:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-03-14 11:56:41 +00:00
2020-04-28 09:43:03 +02:00
2019-09-25 14:00:33 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2017-10-06 13:59:28 +00:00
2017-10-06 13:59:28 +00:00
2017-10-06 13:59:28 +00:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2020-02-04 10:32:45 -05:00
2020-02-04 10:32:45 -05:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2019-11-20 19:08:27 +01:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00
2018-07-20 12:12:10 +00:00