aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Leoshkevich <iii@linux.ibm.com>2019-10-01 14:03:08 +0000
committerIlya Leoshkevich <iii@gcc.gnu.org>2019-10-01 14:03:08 +0000
commitb4363c5a269b8ac870921177e8024e3bf9eb0c23 (patch)
treecb730a40773b14f0b3cda90c403b47058cff7bf0 /gcc
parent3366b37850b0b41d1cc80d82224b4c7804ad2158 (diff)
downloadgcc-b4363c5a269b8ac870921177e8024e3bf9eb0c23.zip
gcc-b4363c5a269b8ac870921177e8024e3bf9eb0c23.tar.gz
gcc-b4363c5a269b8ac870921177e8024e3bf9eb0c23.tar.bz2
S/390: Implement vcond expander for V1TI,V1TF
Currently gcc does not emit wf{c,k}* instructions when comparing long double values. Middle-end actually adds them in the first place, but then veclower pass replaces them with floating point register pair operations, because the corresponding expander is missing. gcc/ChangeLog: 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com> PR target/77918 * config/s390/vector.md (V_HW): Add V1TI in order to make vcond$a$b generate vcondv1tiv1tf. From-SVN: r276408
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/s390/vector.md2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ab81f41..60c8f9f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com>
+
+ PR target/77918
+ * config/s390/vector.md (V_HW): Add V1TI in order to make
+ vcond$a$b generate vcondv1tiv1tf.
+
2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
PR rtl-optimization/91948
diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md
index 961d2c6..d624d3f 100644
--- a/gcc/config/s390/vector.md
+++ b/gcc/config/s390/vector.md
@@ -29,7 +29,7 @@
; All modes directly supported by the hardware having full vector reg size
; V_HW2 is duplicate of V_HW for having two iterators expanding
; independently e.g. vcond
-(define_mode_iterator V_HW [V16QI V8HI V4SI V2DI V2DF (V4SF "TARGET_VXE") (V1TF "TARGET_VXE")])
+(define_mode_iterator V_HW [V16QI V8HI V4SI V2DI (V1TI "TARGET_VXE") V2DF (V4SF "TARGET_VXE") (V1TF "TARGET_VXE")])
(define_mode_iterator V_HW2 [V16QI V8HI V4SI V2DI V2DF (V4SF "TARGET_VXE") (V1TF "TARGET_VXE")])
(define_mode_iterator V_HW_64 [V2DI V2DF])