[committed] aarch64: Fix bf16_v(ld|st)n.c failures for big-endian

Richard Sandiford richard.sandiford@arm.com
Tue Mar 17 19:25:26 GMT 2020


gcc.target/aarch64/advsimd-intrinsics/bf16_vldn.c and
gcc.target/aarch64/advsimd-intrinsics/bf16_vstn.c were
failing for big-endian targets because the <Vmtype> in
aarch64_be_ld1<mode> and aarch64_be_st1<mode> had no
expansion for the bfloat16 modes.

Tested on aarch64-linux-gnu and aarch64_be-elf, pushed.

Richard


2020-03-17  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF.
---
 gcc/config/aarch64/iterators.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md
index 95fa3e4baa1..8e434389e59 100644
--- a/gcc/config/aarch64/iterators.md
+++ b/gcc/config/aarch64/iterators.md
@@ -1000,7 +1000,8 @@ (define_mode_attr Vmtype [(V8QI ".8b") (V16QI ".16b")
 			 (V4HI ".4h") (V8HI  ".8h")
 			 (V2SI ".2s") (V4SI  ".4s")
 			 (V2DI ".2d") (V4HF ".4h")
-			 (V8HF ".8h") (V2SF ".2s")
+			 (V8HF ".8h") (V4BF ".4h")
+			 (V8BF ".8h") (V2SF ".2s")
 			 (V4SF ".4s") (V2DF ".2d")
 			 (DI   "")    (SI   "")
 			 (HI   "")    (QI   "")


More information about the Gcc-patches mailing list