i386.h (ADDITIONAL_REGISTER_NAMES): Add ymm and zmm register names.
authorKirill Yukhin <kirill.yukhin@intel.com>
Tue, 18 Mar 2014 06:29:15 +0000 (06:29 +0000)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Tue, 18 Mar 2014 06:29:15 +0000 (06:29 +0000)
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

gcc/ChangeLog
gcc/config/i386/i386.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/avx-additional-reg-names.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/avx512f-additional-reg-names.c [new file with mode: 0644]

index 1f8e1302ed9f6e87eed94c013b6c800721458e5b..28ac7b6679a9636e380aca0afe4c35f9e2db24fe 100644 (file)
@@ -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
index c80878b47c0473ea3506aaed7abd01cfbc1d8766..c5c1d5886caeb960e08fdadcf0f1421aa3bb8ce5 100644 (file)
@@ -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
index 49bc00155cba4b4d04a61fa882fd34533fbaa55d..beb3bcb2b25386f46c345cdbda66c5fea57220de 100644 (file)
@@ -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 (file)
index 0000000..d984bff
--- /dev/null
@@ -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 (file)
index 0000000..1bd428a
--- /dev/null
@@ -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" );
+}