The RTXs used to express an overflow condition check in add/sub/mul are too complex for if conversion. However, there is code in noce_emit_store_flag which generates a simple CC compare as the base for using a conditional load. All we have to do is to provide a pattern to store the truth value of a CC compare into a GPR. Done with the attached patch. 2019-11-07 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split pattern. gcc/testsuite/ChangeLog: 2019-11-07 Andreas Krebbel <krebbel@linux.ibm.com> * gcc.target/s390/addsub-signed-overflow-1.c: Expect lochi instructions to be used. * gcc.target/s390/addsub-signed-overflow-2.c: Likewise. * gcc.target/s390/mul-signed-overflow-1.c: Likewise. * gcc.target/s390/mul-signed-overflow-2.c: Likewise. * gcc.target/s390/vector/vec-scalar-cmp-1.c: Check for 32 and 64 bit variant of lochi. Swap the values for the lochi's. * gcc.target/s390/zvector/vec-cmp-1.c: Likewise. From-SVN: r277922
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
align-1.c | Loading commit data... | |
align-2.c | Loading commit data... | |
combine-shift-vec.c | Loading commit data... | |
fp-signedint-convert-1.c | Loading commit data... | |
fp-unsignedint-convert-1.c | Loading commit data... | |
int128-1.c | Loading commit data... | |
stpcpy-1.c | Loading commit data... | |
vcond-shift.c | Loading commit data... | |
vec-abi-1.c | Loading commit data... | |
vec-abi-2.c | Loading commit data... | |
vec-abi-3.c | Loading commit data... | |
vec-abi-4.c | Loading commit data... | |
vec-abi-align-1.c | Loading commit data... | |
vec-abi-attr-1.c | Loading commit data... | |
vec-abi-attr-2.c | Loading commit data... | |
vec-abi-attr-3.c | Loading commit data... | |
vec-abi-attr-4.c | Loading commit data... | |
vec-abi-attr-5.c | Loading commit data... | |
vec-abi-attr-6.c | Loading commit data... | |
vec-abi-single-1.c | Loading commit data... | |
vec-abi-single-2.c | Loading commit data... | |
vec-abi-struct-1.c | Loading commit data... | |
vec-abi-vararg-1.c | Loading commit data... | |
vec-abi-vararg-2.c | Loading commit data... | |
vec-clobber-1.c | Loading commit data... | |
vec-cmp-1.c | Loading commit data... | |
vec-cmp-2.c | Loading commit data... | |
vec-copysign-execute.c | Loading commit data... | |
vec-copysign.c | Loading commit data... | |
vec-dbl-math-compile-1.c | Loading commit data... | |
vec-genbytemask-1.c | Loading commit data... | |
vec-genbytemask-2.c | Loading commit data... | |
vec-genmask-1.c | Loading commit data... | |
vec-genmask-2.c | Loading commit data... | |
vec-init-1.c | Loading commit data... | |
vec-init-2.c | Loading commit data... | |
vec-int-math-compile-1.c | Loading commit data... | |
vec-nopeel-1.c | Loading commit data... | |
vec-nopeel-2.c | Loading commit data... | |
vec-scalar-cmp-1.c | Loading commit data... | |
vec-shift-1.c | Loading commit data... | |
vec-shift-2.c | Loading commit data... | |
vec-sub-1.c | Loading commit data... | |
vec-vcond-1.c | Loading commit data... | |
vec-vrepi-1.c | Loading commit data... |