aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Yukhin <kirill.yukhin@intel.com>2014-03-18 06:29:15 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2014-03-18 06:29:15 +0000
commit7c831c4d5abd981b9f1f95cf714fff7b445489d1 (patch)
tree5afc6c50ebeb323932697d7a01a63d4a5effc8de
parentf2538eee23d2cdb453620d000c33445287be4bdb (diff)
downloadgcc-7c831c4d5abd981b9f1f95cf714fff7b445489d1.zip
gcc-7c831c4d5abd981b9f1f95cf714fff7b445489d1.tar.gz
gcc-7c831c4d5abd981b9f1f95cf714fff7b445489d1.tar.bz2
i386.h (ADDITIONAL_REGISTER_NAMES): Add ymm and zmm register names.
gcc/ * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add ymm and zmm register names. gcc/testsuite/ * gcc.target/i386/avx-additional-reg-names.c: New. * gcc.target/i386/avx512f-additional-reg-names.c: Ditto. From-SVN: r208631
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.h28
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c9
-rw-r--r--gcc/testsuite/gcc.target/i386/avx512f-additional-reg-names.c9
5 files changed, 50 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1f8e130..28ac7b6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
+
+ * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
+ ymm and zmm register names.
+
2014-03-17 Jakub Jelinek <jakub@redhat.com>
PR target/60516
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index c80878b..c5c1d58 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2016,12 +2016,28 @@ do { \
/* Table of additional register names to use in user input. */
#define ADDITIONAL_REGISTER_NAMES \
-{ { "eax", 0 }, { "edx", 1 }, { "ecx", 2 }, { "ebx", 3 }, \
- { "esi", 4 }, { "edi", 5 }, { "ebp", 6 }, { "esp", 7 }, \
- { "rax", 0 }, { "rdx", 1 }, { "rcx", 2 }, { "rbx", 3 }, \
- { "rsi", 4 }, { "rdi", 5 }, { "rbp", 6 }, { "rsp", 7 }, \
- { "al", 0 }, { "dl", 1 }, { "cl", 2 }, { "bl", 3 }, \
- { "ah", 0 }, { "dh", 1 }, { "ch", 2 }, { "bh", 3 } }
+{ { "eax", 0 }, { "edx", 1 }, { "ecx", 2 }, { "ebx", 3 }, \
+ { "esi", 4 }, { "edi", 5 }, { "ebp", 6 }, { "esp", 7 }, \
+ { "rax", 0 }, { "rdx", 1 }, { "rcx", 2 }, { "rbx", 3 }, \
+ { "rsi", 4 }, { "rdi", 5 }, { "rbp", 6 }, { "rsp", 7 }, \
+ { "al", 0 }, { "dl", 1 }, { "cl", 2 }, { "bl", 3 }, \
+ { "ah", 0 }, { "dh", 1 }, { "ch", 2 }, { "bh", 3 }, \
+ { "ymm0", 21}, { "ymm1", 22}, { "ymm2", 23}, { "ymm3", 24}, \
+ { "ymm4", 25}, { "ymm5", 26}, { "ymm6", 27}, { "ymm7", 28}, \
+ { "ymm8", 45}, { "ymm9", 46}, { "ymm10", 47}, { "ymm11", 48}, \
+ { "ymm12", 49}, { "ymm13", 50}, { "ymm14", 51}, { "ymm15", 52}, \
+ { "ymm16", 53}, { "ymm17", 54}, { "ymm18", 55}, { "ymm19", 56}, \
+ { "ymm20", 57}, { "ymm21", 58}, { "ymm22", 59}, { "ymm23", 60}, \
+ { "ymm24", 61}, { "ymm25", 62}, { "ymm26", 63}, { "ymm27", 64}, \
+ { "ymm28", 65}, { "ymm29", 66}, { "ymm30", 67}, { "ymm31", 68}, \
+ { "zmm0", 21}, { "zmm1", 22}, { "zmm2", 23}, { "zmm3", 24}, \
+ { "zmm4", 25}, { "zmm5", 26}, { "zmm6", 27}, { "zmm7", 28}, \
+ { "zmm8", 45}, { "zmm9", 46}, { "zmm10", 47}, { "zmm11", 48}, \
+ { "zmm12", 49}, { "zmm13", 50}, { "zmm14", 51}, { "zmm15", 52}, \
+ { "zmm16", 53}, { "zmm17", 54}, { "zmm18", 55}, { "zmm19", 56}, \
+ { "zmm20", 57}, { "zmm21", 58}, { "zmm22", 59}, { "zmm23", 60}, \
+ { "zmm24", 61}, { "zmm25", 62}, { "zmm26", 63}, { "zmm27", 64}, \
+ { "zmm28", 65}, { "zmm29", 66}, { "zmm30", 67}, { "zmm31", 68} }
/* Note we are omitting these since currently I don't know how
to get gcc to use these, since they want the same but different
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 49bc001..beb3bcb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
+
+ * gcc.target/i386/avx-additional-reg-names.c: New.
+ * gcc.target/i386/avx512f-additional-reg-names.c: Ditto.
+
2014-03-17 Adam Butcher <adam@jessamine.co.uk>
PR c++/60390
diff --git a/gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c b/gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c
new file mode 100644
index 0000000..d984bff
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx" } */
+
+void foo ()
+{
+ register int ymm_var asm ("ymm4");
+
+ __asm__ __volatile__("vxorpd %%ymm0, %%ymm0, %%ymm7\n" : : : "ymm7" );
+}
diff --git a/gcc/testsuite/gcc.target/i386/avx512f-additional-reg-names.c b/gcc/testsuite/gcc.target/i386/avx512f-additional-reg-names.c
new file mode 100644
index 0000000..1bd428a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx512f-additional-reg-names.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx512f" } */
+
+void foo ()
+{
+ register int zmm_var asm ("zmm9");
+
+ __asm__ __volatile__("vxorpd %%zmm0, %%zmm0, %%zmm7\n" : : : "zmm7" );
+}