S/390: Fix failing RTL check in s390_canonicalize_comparison
The new sigfpe-eh.c fails with internal compiler error: RTL check: expected elt 0 type 'e' or 'u', have 'w' (rtx const_int) This is most likely due to a typo: XEXP (*op1, 0) was used, when XEXP (*op0, 1) was intended. This did not cause any user-visible problems, because reversed_comparison_code_parts ignores the respective argument, and the release compiler is built without RTL checks. gcc/ChangeLog: 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com> * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP (*op0, 1) instead of XEXP (*op1, 0). gcc/testsuite/ChangeLog: 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com> * gcc.target/s390/sigfpe-eh.c: New test. From-SVN: r275336
This commit is contained in:
parent
e1d5d19ec4
commit
837ee1e0b6
3 changed files with 10 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com>
|
||||
|
||||
* config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
|
||||
(*op0, 1) instead of XEXP (*op1, 0).
|
||||
|
||||
2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
|
||||
|
|
|
@ -1783,7 +1783,7 @@ s390_canonicalize_comparison (int *code, rtx *op0, rtx *op1,
|
|||
if (*code == EQ)
|
||||
new_code = reversed_comparison_code_parts (GET_CODE (*op0),
|
||||
XEXP (*op0, 0),
|
||||
XEXP (*op1, 0), NULL);
|
||||
XEXP (*op0, 1), NULL);
|
||||
else
|
||||
new_code = GET_CODE (*op0);
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com>
|
||||
|
||||
* gcc.target/s390/sigfpe-eh.c: New test.
|
||||
|
||||
2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* gcc.target/aarch64/acle/jcvt_1.c: New test.
|
||||
|
|
Loading…
Add table
Reference in a new issue