mirror of
https://github.com/openRuyi-Project/gcc.git
synced 2026-09-01 02:54:50 +00:00
i386: Fix up vpternlogq last operand of *andnot<mode>3 for -masm=intel [PR124367]
The immediate operand 0x44 in this insn was incorrectly emitted as $0x44 even in -masm=intel syntax. Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, approved by Uros in the PR, committed to trunk. 2026-03-05 Jakub Jelinek <jakub@redhat.com> PR target/124367 * config/i386/sse.md (*andnot<mode>3): Use 0x44 rather than $0x44 for -masm=intel. * gcc.target/i386/avx512vl-pr124367.c: New test.
This commit is contained in:
committed by
Jakub Jelinek
parent
860da84158
commit
d828a370db
@@ -18897,9 +18897,9 @@
|
||||
tmp = "pternlog";
|
||||
ssesuffix = "<ternlogsuffix>";
|
||||
if (which_alternative != 4 || TARGET_AVX512VL)
|
||||
ops = "v%s%s\t{$0x44, %%1, %%2, %%0|%%0, %%2, %%1, $0x44}";
|
||||
ops = "v%s%s\t{$0x44, %%1, %%2, %%0|%%0, %%2, %%1, 0x44}";
|
||||
else
|
||||
ops = "v%s%s\t{$0x44, %%g1, %%g2, %%g0|%%g0, %%g2, %%g1, $0x44}";
|
||||
ops = "v%s%s\t{$0x44, %%g1, %%g2, %%g0|%%g0, %%g2, %%g1, 0x44}";
|
||||
break;
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
/* PR target/124367 */
|
||||
/* { dg-do assemble { target { { int128 && avx512vl } && masm_intel } } } */
|
||||
/* { dg-options "-O -mavx512vl -masm=intel" } */
|
||||
|
||||
union {
|
||||
__int128 a;
|
||||
__attribute__((__vector_size__(sizeof (__int128)))) long long b;
|
||||
} u;
|
||||
|
||||
void
|
||||
foo ()
|
||||
{
|
||||
u.b ^= 0 > u.a | u.b;
|
||||
}
|
||||
Reference in New Issue
Block a user