https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111231
--- Comment #23 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- #0 ptr_deref_may_alias_decl_p (ptr=0x7ffff5e0c678, decl=0x7ffff5dff000) at /home/rearnsha/gnusrc/gcc-cross/gcc-13/gcc/tree-ssa-alias.cc:295 #1 0x0000000001768173 in indirect_ref_may_alias_decl_p (ref1=0x7ffff5e9ad98, base1=0x7ffff5e9ad98, offset1=..., max_size1=..., size1=..., ref1_alias_set=3, base1_alias_set=3, ref2=0x7ffff5deae60, base2=0x7ffff5dff000, offset2=..., max_size2=..., size2=..., ref2_alias_set=0, base2_alias_set=0, tbaa_p=false) at /home/rearnsha/gnusrc/gcc-cross/gcc-13/gcc/tree-ssa-alias.cc:2102 #2 0x0000000001769541 in refs_may_alias_p_2 (ref1=0x7fffffffceb0, ref2=0x7fffffffce70, tbaa_p=false) at /home/rearnsha/gnusrc/gcc-cross/gcc-13/gcc/tree-ssa-alias.cc:2505 #3 0x000000000176968a in refs_may_alias_p_1 (ref1=0x7fffffffce70, ref2=0x7fffffffceb0, tbaa_p=false) at /home/rearnsha/gnusrc/gcc-cross/gcc-13/gcc/tree-ssa-alias.cc:2534 #4 0x0000000000f7bf7d in rtx_refs_may_alias_p (x=0x7ffff5ed3b40, mem=0x7ffff5e9c9d8, tbaa_p=true) at /home/rearnsha/gnusrc/gcc-cross/gcc-13/gcc/alias.cc:366 #5 0x0000000000f8243b in true_dependence_1 (mem=0x7ffff5e9c9d8, mem_mode=E_SImode, mem_addr=0x7ffff5e9c9c0, x=0x7ffff5ed3b40, x_addr=0x7ffff5ed3b28, mem_canonicalized=false) Where (in true_dependence_1): p mem $96 = (const_rtx) 0x7ffff5e9c9d8 (gdb) pr (mem/c:SI (plus:SI (reg/f:SI 14 lr [214]) (const_int 4 [0x4])) [0 MEM <unsigned char[16]> [(char * {ref-all})&D.33805]+4 S4 A32]) p x $97 = (const_rtx) 0x7ffff5ed3b40 (gdb) pr (mem/c:V8HI (plus:SI (reg/f:SI 13 sp) (const_int 256 [0x100])) [3 MEM <vector(8) short int> [(short int *)_179]+0 S16 A64]) in refs_may_alias_p_1: p *ref1 $99 = {ref = 0x7ffff5e9ad98, base = 0x7ffff5e9ad98, offset = {<poly_int_pod<1, long>> = {coeffs = {0}}, <No data fields>}, size = {<poly_int_pod<1, long>> = {coeffs = {128}}, <No data fields>}, max_size = {<poly_int_pod<1, long>> = {coeffs = {128}}, <No data fields>}, ref_alias_set = 3, base_alias_set = 3, volatile_p = false} p *ref2 $100 = {ref = 0x7ffff5deae60, base = 0x7ffff5dff000, offset = {<poly_int_pod<1, long>> = {coeffs = {32}}, <No data fields>}, size = {<poly_int_pod<1, long>> = {coeffs = {32}}, <No data fields>}, max_size = {<poly_int_pod<1, long>> = {coeffs = {128}}, <No data fields>}, ref_alias_set = 0, base_alias_set = 0, volatile_p = false} p ref1->ref $101 = (tree) 0x7ffff5e9ad98 (gdb) pt <mem_ref 0x7ffff5e9ad98 type <vector_type 0x7ffff752d7e0 type <integer_type 0x7ffff7405498 short int sizes-gimplified public type_6 HI size <integer_cst 0x7ffff73fb4b0 constant 16> unit-size <integer_cst 0x7ffff73fb4c8 constant 2> align:16 warn_if_not_align:0 symtab:0 alias-set 3 canonical-type 0x7ffff7405498 precision:16 min <integer_cst 0x7ffff73fb468 -32768> max <integer_cst 0x7ffff73fb480 32767> pointer_to_this <pointer_type 0x7ffff75b4f18> reference_to_this <reference_type 0x7ffff66010a8>> V8HI size <integer_cst 0x7ffff73fb618 constant 128> unit-size <integer_cst 0x7ffff73fb630 constant 16> align:64 warn_if_not_align:0 symtab:0 alias-set 3 canonical-type 0x7ffff752d7e0 nunits:8 pointer_to_this <pointer_type 0x7ffff62ff1f8>> arg:0 <ssa_name 0x7ffff5e0c678 type <pointer_type 0x7ffff740c150 type <void_type 0x7ffff740c0a8 void> sizes-gimplified public unsigned type_6 SI size <integer_cst 0x7ffff73fb2b8 constant 32> unit-size <integer_cst 0x7ffff73fb2d0 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set 12 canonical-type 0x7ffff740c150 pointer_to_this <pointer_type 0x7ffff74175e8> reference_to_this <reference_type 0x7ffff67fba80>> var <var_decl 0x7ffff5e875a0 D.34164> def_stmt version:179 ptr-info 0x7ffff5e71468> arg:1 <integer_cst 0x7ffff69b7bb8 type <pointer_type 0x7ffff75b4f18> constant 0>> p ref1->base $102 = (tree) 0x7ffff5e9ad98 (gdb) pt <mem_ref 0x7ffff5e9ad98 type <vector_type 0x7ffff752d7e0 type <integer_type 0x7ffff7405498 short int sizes-gimplified public type_6 HI size <integer_cst 0x7ffff73fb4b0 constant 16> unit-size <integer_cst 0x7ffff73fb4c8 constant 2> align:16 warn_if_not_align:0 symtab:0 alias-set 3 canonical-type 0x7ffff7405498 precision:16 min <integer_cst 0x7ffff73fb468 -32768> max <integer_cst 0x7ffff73fb480 32767> pointer_to_this <pointer_type 0x7ffff75b4f18> reference_to_this <reference_type 0x7ffff66010a8>> V8HI size <integer_cst 0x7ffff73fb618 constant 128> unit-size <integer_cst 0x7ffff73fb630 constant 16> align:64 warn_if_not_align:0 symtab:0 alias-set 3 canonical-type 0x7ffff752d7e0 nunits:8 pointer_to_this <pointer_type 0x7ffff62ff1f8>> arg:0 <ssa_name 0x7ffff5e0c678 type <pointer_type 0x7ffff740c150 type <void_type 0x7ffff740c0a8 void> sizes-gimplified public unsigned type_6 SI size <integer_cst 0x7ffff73fb2b8 constant 32> unit-size <integer_cst 0x7ffff73fb2d0 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set 12 canonical-type 0x7ffff740c150 pointer_to_this <pointer_type 0x7ffff74175e8> reference_to_this <reference_type 0x7ffff67fba80>> var <var_decl 0x7ffff5e875a0 D.34164> def_stmt version:179 ptr-info 0x7ffff5e71468> arg:1 <integer_cst 0x7ffff69b7bb8 type <pointer_type 0x7ffff75b4f18> constant 0>> p ref2->ref $103 = (tree) 0x7ffff5deae60 (gdb) pt <mem_ref 0x7ffff5deae60 type <array_type 0x7ffff6322dc8 type <integer_type 0x7ffff7405348 unsigned char sizes-gimplified public unsigned type_6 QI size <integer_cst 0x7ffff73fb3f0 constant 8> unit-size <integer_cst 0x7ffff73fb408 constant 1> align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff7405348 precision:8 min <integer_cst 0x7ffff73fb420 0> max <integer_cst 0x7ffff73fb3c0 255>> BLK size <integer_cst 0x7ffff73fb618 constant 128> unit-size <integer_cst 0x7ffff73fb630 constant 16> user align:16 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff6322d20 domain <integer_type 0x7ffff6b33d20 type <integer_type 0x7ffff7405000 sizetype> sizes-gimplified public type_6 SI size <integer_cst 0x7ffff73fb2b8 constant 32> unit-size <integer_cst 0x7ffff73fb2d0 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff6b33d20 precision:32 min <integer_cst 0x7ffff73fb2e8 0> max <integer_cst 0x7ffff72eeaf8 15>> pointer_to_this <pointer_type 0x7ffff62fff18>> arg:0 <addr_expr 0x7ffff5de0780 type <pointer_type 0x7ffff6716930 type <record_type 0x7ffff66d77e0 VFromD> public unsigned SI size <integer_cst 0x7ffff73fb2b8 32> unit-size <integer_cst 0x7ffff73fb2d0 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff66db5e8> arg:0 <var_decl 0x7ffff5dff000 D.33805 type <record_type 0x7ffff66d7e70 Vec128> used ignored BLK ../hwy-pr111231-cpp.cc:4461:27 size <integer_cst 0x7ffff73fb618 128> unit-size <integer_cst 0x7ffff73fb630 16> align:64 warn_if_not_align:0 context <function_decl 0x7ffff5da8c00 operator().constprop> abstract_origin <var_decl 0x7ffff6238e10 D.30944> (mem/c:BLK (plus:SI (reg/f:SI 109 virtual-stack-vars) (const_int -96 [0xffffffffffffffa0])) [2 D.33805+0 S16 A64])> ../hwy-pr111231-cpp.cc:4346:16 start: ../hwy-pr111231-cpp.cc:4346:3 finish: ../hwy-pr111231-cpp.cc:4346:24> arg:1 <integer_cst 0x7ffff6227660 type <pointer_type 0x7ffff6231888> constant 0>> p ref2->base $104 = (tree) 0x7ffff5dff000 (gdb) pt <var_decl 0x7ffff5dff000 D.33805 type <record_type 0x7ffff66d7e70 Vec128 sizes-gimplified needs-constructing cxx-odr-p type_5 type_6 BLK size <integer_cst 0x7ffff73fb618 constant 128> unit-size <integer_cst 0x7ffff73fb630 constant 16> align:16 warn_if_not_align:0 symtab:0 alias-set 2 canonical-type 0x7ffff66d7e70 fields <function_decl 0x7ffff66e7300 __ct type <method_type 0x7ffff66e6bd0> abstract external autoinline decl_3 decl_5 decl_8 SI ../hwy-pr111231-cpp.cc:4332:40 align:32 warn_if_not_align:0 context <record_type 0x7ffff66d7e70 Vec128> full-name "constexpr hwy::{anonymous}::Vec128<short int, 8>::Vec128(hwy::{anonymous}::Vec128<short int, 8>&&) noexcept (<uninstantiated>)" not-really-extern chain <function_decl 0x7ffff66e7500 __ct_base >> context <namespace_decl 0x7ffff6cda000 D.12551> full-name "struct hwy::{anonymous}::Vec128<short int, 8>" needs-constructor X() X(constX&) this=(X&) n_parents=0 use_template=1 interface-unknown pointer_to_this <pointer_type 0x7ffff66db5e8> reference_to_this <reference_type 0x7ffff66e69d8> chain <type_decl 0x7ffff66c7ed8 Vec128>> used ignored BLK ../hwy-pr111231-cpp.cc:4461:27 size <integer_cst 0x7ffff73fb618 128> unit-size <integer_cst 0x7ffff73fb630 16> align:64 warn_if_not_align:0 context <function_decl 0x7ffff5da8c00 operator().constprop> abstract_origin <var_decl 0x7ffff6238e10 D.30944> (mem/c:BLK (plus:SI (reg/f:SI 109 virtual-stack-vars) (const_int -96 [0xffffffffffffffa0])) [2 D.33805+0 S16 A64])>