https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89711
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue is that the same DECL_RESULT is used for xd.resolver and tx.resolver.
Maybe they are commoned by IPA ICF? But the function decls still are
different...
tx.resolver/6 (tx.resolver) @0x7ffff687c870
Type: function definition analyzed
Visibility: force_output prevailing_def_ironly artificial
References: tx.avx.0/3 (addr)tx.default.1/1 (addr)
Referring:
Availability: available
Function flags: count:1073741824 (estimated locally) body
Called by:
Calls: __builtin_cpu_supports/8 (1073741824 (estimated locally),1.00 per
call) __builtin_cpu_init/7 (1073741824 (estimated locally),1.00 per call)
$23 = void
xd.resolver/10 (xd.resolver) @0x7ffff687c438
Type: function definition analyzed
Visibility: force_output prevailing_def_ironly artificial
References: xd.avx.0/4 (addr)xd.default.1/0 (addr)
Referring:
Availability: available
Function flags: count:1073741824 (estimated locally) body
Called by:
Calls: __builtin_cpu_supports/8 (1073741824 (estimated locally),1.00 per
call) __builtin_cpu_init/7 (1073741824 (estimated locally),1.00 per call)
$27 = void
DECL_RESULT (tx.resolver):
<result_decl 0x7ffff6884258 D.4339
type <pointer_type 0x7ffff6896000
type <void_type 0x7ffff688ff18 void VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1
structural-equality
pointer_to_this <pointer_type 0x7ffff6896000>>
public unsigned DI
size <integer_cst 0x7ffff687ab70 constant 64>
unit-size <integer_cst 0x7ffff687ab88 constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality
pointer_to_this <pointer_type 0x7ffff689bb28>>
unsigned ignored DI (null):0:0 size <integer_cst 0x7ffff687ab70 64>
unit-size <integer_cst 0x7ffff687ab88 8>
align:64 warn_if_not_align:0 context <translation_unit_decl 0x7ffff68841e0
t.c>>
DECL_RESULT (xd.resolver):
<result_decl 0x7ffff6884258 D.4339
type <pointer_type 0x7ffff6896000
type <void_type 0x7ffff688ff18 void VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1
structural-equality
pointer_to_this <pointer_type 0x7ffff6896000>>
public unsigned DI
size <integer_cst 0x7ffff687ab70 constant 64>
unit-size <integer_cst 0x7ffff687ab88 constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 structural-equality
pointer_to_this <pointer_type 0x7ffff689bb28>>
unsigned ignored DI (null):0:0 size <integer_cst 0x7ffff687ab70 64>
unit-size <integer_cst 0x7ffff687ab88 8>
align:64 warn_if_not_align:0 context <translation_unit_decl 0x7ffff68841e0
t.c>>
maybe they are somehow commoned by tree merging? Indeed they are. I
wonder why they have the same DECL_CONTEXT? Where are they generated?