From: Ilya Leoshkevich Date: Tue, 3 Sep 2019 09:29:02 +0000 (+0000) Subject: S/390: Fix failing RTL check in s390_canonicalize_comparison X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=837ee1e0b6e7c0936110b93ed70d8303ab316a16;p=gcc.git 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 * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP (*op0, 1) instead of XEXP (*op1, 0). gcc/testsuite/ChangeLog: 2019-09-03 Ilya Leoshkevich * gcc.target/s390/sigfpe-eh.c: New test. From-SVN: r275336 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 401cfdae471..a6a481ceb91 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2019-09-03 Ilya Leoshkevich + + * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP + (*op0, 1) instead of XEXP (*op1, 0). + 2019-09-03 Kyrylo Tkachov * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define. diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index fa17d7d5d08..24784266848 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 40d11f9dfd8..2771cd9dd73 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-09-03 Ilya Leoshkevich + + * gcc.target/s390/sigfpe-eh.c: New test. + 2019-09-03 Kyrylo Tkachov * gcc.target/aarch64/acle/jcvt_1.c: New test.