aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Schulze Frielinghaus <stefansf@gcc.gnu.org>2024-07-16 11:23:10 +0200
committerStefan Schulze Frielinghaus <stefansf@gcc.gnu.org>2024-07-16 11:23:10 +0200
commita4abda934aa426137f059934629d3241f008e113 (patch)
tree63c046f30684a2c36ae9e5a548ac3c99b4f3f31a
parent896393791ee34ffc176c87d232dfee735db3aaab (diff)
downloadgcc-a4abda934aa426137f059934629d3241f008e113.zip
gcc-a4abda934aa426137f059934629d3241f008e113.tar.gz
gcc-a4abda934aa426137f059934629d3241f008e113.tar.bz2
s390: Fix unresolved iterators bhfgq and xdee
Code attribute bhfgq is missing a mapping for TF. This results in unresolved iterators in assembler templates for *bswaptf. With the TF mapping added the base mnemonics vlbr and vstbr are not "used" anymore but only the extended mnemonics (vlbr<bhfgq> was interpreted as vlbr; likewise for vstbr). Therefore, remove the base mnemonics from the scheduling description, otherwise, genattrtab would error about unknown mnemonics. Similarly, we end up with unresolved iterators in assembler templates for mulfprx23 since code attribute xdee is missing a mapping for FPRX2. gcc/ChangeLog: * config/s390/3931.md (vlbr, vstbr): Remove. * config/s390/s390.md (xdee): Add FPRX2 mapping. * config/s390/vector.md (bhfgq): Add TF mapping.
-rw-r--r--gcc/config/s390/3931.md5
-rw-r--r--gcc/config/s390/s390.md2
-rw-r--r--gcc/config/s390/vector.md2
3 files changed, 2 insertions, 7 deletions
diff --git a/gcc/config/s390/3931.md b/gcc/config/s390/3931.md
index 632c245..9f7a4c5 100644
--- a/gcc/config/s390/3931.md
+++ b/gcc/config/s390/3931.md
@@ -404,7 +404,6 @@ vlvgg,
vlvgh,
vlvgp,
vst,
-vstbr,
vstbrf,
vstbrg,
vstbrh,
@@ -627,7 +626,6 @@ tm,
tmy,
vl,
vlbb,
-vlbr,
vlbrf,
vlbrg,
vlbrh,
@@ -661,7 +659,6 @@ vlreph,
vlrl,
vlrlr,
vst,
-vstbr,
vstbrf,
vstbrg,
vstbrh,
@@ -2148,7 +2145,6 @@ vistrfs,
vistrhs,
vl,
vlbb,
-vlbr,
vlbrf,
vlbrg,
vlbrh,
@@ -2240,7 +2236,6 @@ tbegin,
tbeginc,
tend,
vst,
-vstbr,
vstbrf,
vstbrg,
vstbrh,
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 303026f..3d5759d 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -745,7 +745,7 @@
;; In FP templates, a <dee> in "m<dee><bt>r" will expand to "mx<bt>r" in
;; TF/TDmode, "md<bt>r" in DF/DDmode, "mee<bt>r" in SFmode and "me<bt>r in
;; SDmode.
-(define_mode_attr xdee [(TF "x") (DF "d") (SF "ee") (TD "x") (DD "d") (SD "e")])
+(define_mode_attr xdee [(TF "x") (FPRX2 "x") (DF "d") (SF "ee") (TD "x") (DD "d") (SD "e")])
;; The decimal floating point variants of add, sub, div and mul support 3
;; fp register operands. The following attributes allow to merge the bfp and
diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md
index 69efbbb..a75b7cb 100644
--- a/gcc/config/s390/vector.md
+++ b/gcc/config/s390/vector.md
@@ -132,7 +132,7 @@
(V1TI "q") (TI "q")
(V1SF "f") (V2SF "f") (V4SF "f")
(V1DF "g") (V2DF "g")
- (V1TF "q")])
+ (V1TF "q") (TF "q")])
; This is for vmalhw. It gets an 'w' attached to avoid confusion with
; multiply and add logical high vmalh.