mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 03:47:02 -05:00
[APX] i386: Use setzucc by default when APX-ZU enabled
When APX-ZU enabled, all legacy setcc can directly use zu sematic to avoid potential partial-dependency. gcc/ChangeLog: * config/i386/i386.md (*setcc_qi): Force output setzucc for reg operand[0]. (*setcc_qi_slp): Likewise. gcc/testsuite/ChangeLog: * gcc.target/i386/apx-zu-3.c: New test.
This commit is contained in:
@@ -19880,7 +19880,13 @@
|
||||
(match_operator:QI 1 "ix86_comparison_operator"
|
||||
[(reg FLAGS_REG) (const_int 0)]))]
|
||||
""
|
||||
"set%C1\t%0"
|
||||
{
|
||||
if (REG_P (operands[0])
|
||||
&& TARGET_APX_ZU)
|
||||
return "setzu%C1\t%0";
|
||||
else
|
||||
return "set%C1\t%0";
|
||||
}
|
||||
[(set_attr "type" "setcc")
|
||||
(set_attr "mode" "QI")])
|
||||
|
||||
@@ -19889,7 +19895,12 @@
|
||||
(match_operator:QI 1 "ix86_comparison_operator"
|
||||
[(reg FLAGS_REG) (const_int 0)]))]
|
||||
""
|
||||
"set%C1\t%0"
|
||||
{
|
||||
if (TARGET_APX_ZU)
|
||||
return "setzu%C1\t%0";
|
||||
else
|
||||
return "set%C1\t%0";
|
||||
}
|
||||
[(set_attr "type" "setcc")
|
||||
(set_attr "mode" "QI")])
|
||||
|
||||
|
||||
8
gcc/testsuite/gcc.target/i386/apx-zu-3.c
Normal file
8
gcc/testsuite/gcc.target/i386/apx-zu-3.c
Normal file
@@ -0,0 +1,8 @@
|
||||
/* { dg-do compile { target { ! ia32 } } } */
|
||||
/* { dg-options "-mapxf -march=x86-64 -O2" } */
|
||||
/* { dg-final { scan-assembler-times "setzune" 1} } */
|
||||
|
||||
char foo0 (int a)
|
||||
{
|
||||
return a == 0 ? 0 : 1;
|
||||
}
|
||||
Reference in New Issue
Block a user