gcc/testsuite/ChangeLog: 2016-07-18 Martin Liska <mli...@suse.cz>
* gcc.target/i386/movbe-4.c: New test. gcc/ChangeLog: 2016-07-18 Martin Liska <mli...@suse.cz> * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Handle movbe. --- gcc/config/i386/i386.c | 1 + gcc/testsuite/gcc.target/i386/movbe-4.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/movbe-4.c diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 493b7e6..8a30cf2 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -6437,6 +6437,7 @@ ix86_valid_target_attribute_inner_p (tree args, char *p_strings[], IX86_ATTR_ISA ("mmx", OPT_mmmx), IX86_ATTR_ISA ("pclmul", OPT_mpclmul), IX86_ATTR_ISA ("popcnt", OPT_mpopcnt), + IX86_ATTR_ISA ("movbe", OPT_mmovbe), IX86_ATTR_ISA ("crc32", OPT_mcrc32), IX86_ATTR_ISA ("sse", OPT_msse), IX86_ATTR_ISA ("sse2", OPT_msse2), diff --git a/gcc/testsuite/gcc.target/i386/movbe-4.c b/gcc/testsuite/gcc.target/i386/movbe-4.c new file mode 100644 index 0000000..9067091 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/movbe-4.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +#pragma GCC target ("movbe") + +extern int x; + +void +foo (int i) +{ + x = __builtin_bswap32 (i); +} + +int +bar () +{ + return __builtin_bswap32 (x); +} + +/* { dg-final { scan-assembler-times "movbe\[ \t\]" 2 } } */ -- 2.8.4