aboutsummaryrefslogtreecommitdiff
path: root/gcc/vector-builder.h
diff options
context:
space:
mode:
authorStefan Schulze Frielinghaus <stefansf@linux.ibm.com>2023-11-09 09:32:58 +0100
committerStefan Schulze Frielinghaus <stefansf@linux.ibm.com>2023-11-09 09:32:58 +0100
commit27381fb617b299768624a8e11c431a155cd81bba (patch)
tree77c3d1d8c7adc8b7ae10e0904572c0b123594d21 /gcc/vector-builder.h
parentfa4dde85af5f08baed60bbb3f8455733edae6afb (diff)
downloadgcc-27381fb617b299768624a8e11c431a155cd81bba.zip
gcc-27381fb617b299768624a8e11c431a155cd81bba.tar.gz
gcc-27381fb617b299768624a8e11c431a155cd81bba.tar.bz2
s390: Recognize further vpdi and vmr{l,h} pattern
Deal with cases where vpdi and vmr{l,h} are still applicable if the operands of those instructions are swapped. For example, currently for V2DI foo (V2DI x) { return (V2DI) {x[1], x[0]}; } the assembler sequence vlgvg %r1,%v24,1 vzero %v0 vlvgg %v0,%r1,0 vmrhg %v24,%v0,%v24 is emitted. With this patch a single vpdi is emitted. Extensive tests are included in a subsequent patch of this series where more cases are covered. gcc/ChangeLog: * config/s390/s390.cc (expand_perm_with_merge): Deal with cases where vmr{l,h} are still applicable if the operands are swapped. (expand_perm_with_vpdi): Likewise for vpdi.
Diffstat (limited to 'gcc/vector-builder.h')
0 files changed, 0 insertions, 0 deletions