diff options
author | Andreas Krebbel <krebbel@linux.ibm.com> | 2018-11-06 10:22:05 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2018-11-06 10:22:05 +0000 |
commit | 8c21b0d164f33d9d47acc26f4f9b99b53e3b1945 (patch) | |
tree | 55990b0d5ab0c07269fc537eb89719d7a9d8af21 | |
parent | d24c3ef231c8df4dbeaec755e13d5671982f7eda (diff) | |
download | gcc-8c21b0d164f33d9d47acc26f4f9b99b53e3b1945.zip gcc-8c21b0d164f33d9d47acc26f4f9b99b53e3b1945.tar.gz gcc-8c21b0d164f33d9d47acc26f4f9b99b53e3b1945.tar.bz2 |
S/390: Fix PR87723
gcc/ChangeLog:
2018-11-06 Andreas Krebbel <krebbel@linux.ibm.com>
PR target/87723
* config/s390/s390.md ("*r<noxa>sbg_di_rotl"): Remove mode
attributes for operands 3 and 4.
gcc/testsuite/ChangeLog:
2018-11-06 Andreas Krebbel <krebbel@linux.ibm.com>
PR target/87723
* gcc.target/s390/pr87723.c: New test.
From-SVN: r265832
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/s390/s390.md | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/s390/pr87723.c | 29 |
4 files changed, 41 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4b36e0..f5be58a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-11-06 Andreas Krebbel <krebbel@linux.ibm.com> + + PR target/87723 + * config/s390/s390.md ("*r<noxa>sbg_di_rotl"): Remove mode + attributes for operands 3 and 4. + 2018-11-06 Richard Biener <rguenther@suse.de> PR middle-end/18041 diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 8e7b285..4ffd438 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -4230,7 +4230,7 @@ (match_operand:DI 4 "nonimmediate_operand" "0"))) (clobber (reg:CC CC_REGNUM))] "TARGET_Z10" - "r<noxa>sbg\t%0,%1,%<bfstart>2,%<bfend>2,%b3" + "r<noxa>sbg\t%0,%1,%s2,%e2,%b3" [(set_attr "op_type" "RIE")]) ; rosbg, rxsbg diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0bfb80f..17f6968 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-11-06 Andreas Krebbel <krebbel@linux.ibm.com> + + PR target/87723 + * gcc.target/s390/pr87723.c: New test. + 2018-11-06 Richard Biener <rguenther@suse.de> PR middle-end/18041 diff --git a/gcc/testsuite/gcc.target/s390/pr87723.c b/gcc/testsuite/gcc.target/s390/pr87723.c new file mode 100644 index 0000000..b0e8a5a --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/pr87723.c @@ -0,0 +1,29 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -march=z196 -m64 -mzarch" } */ + +unsigned long a; +int b; +void c(char* i) { + for (;;) { + char g = 0; + for (; g < 24; ++g) + b = a << g | a >> 64 - g; + { + char *d = i; + long h = b; + char e = 0; + for (; e < 8; ++e) + d[e] = h; + } + char *d = i; + signed e; + unsigned long f = 0; + e = 7; + for (; e; --e) { + f <<= 8; + f |= d[e]; + } + for (; e < 8; ++e) + d[e] = f; + } +} |