https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104438
--- Comment #4 from Hongtao.liu <crazylht at gmail dot com> --- > It is unclear why the CFG wasn't straightened out here. Is the bb commented > as "asm" actually asm? Then GCC will not see it is very cheap/small, yeah. "asm" is not inline assembly. it's BB 6 below (note 89 88 126 6 [bb 6] NOTE_INSN_BASIC_BLOCK) (call_insn 126 89 121 6 (parallel [ (call (mem:QI (const_int 0 [0]) [0 S1 A8]) (const_int 0 [0])) (unspec [ (const_int 1 [0x1]) ] UNSPEC_CALLEE_ABI) ]) -1 (expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000]) (nil)) (nil)) (jump_insn 121 126 122 6 (set (pc) (label_ref 91)) 892 {jump} (nil) -> 91) (barrier 122 121 112) (code_label 112 122 111 7 4 (nil) [1 uses]) (note 111 112 11 7 [bb 7] NOTE_INSN_BASIC_BLOCK) (insn 11 111 12 7 (set (reg:V8SI 20 xmm0 [orig:131 _168 ] [131]) (const_vector:V8SI [ (const_int 0 [0]) repeated x8 ])) "test.c":28:19 1696 {movv8si_internal} (nil)) (insn 12 11 91 7 (set (reg/v:V4DI 23 xmm3 [orig:87 ymm ] [87]) (const_vector:V4DI [ (const_int 0 [0]) repeated x4 ])) "test.c":24:19 1699 {movv4di_internal} (nil)) (code_label 91 12 92 8 2 (nil) [1 uses]) (note 92 91 94 8 [bb 8] NOTE_INSN_BASIC_BLOCK) (insn 94 92 99 8 (set (reg:V2DI 23 xmm3 [176]) (vec_select:V2DI (reg/v:V4DI 23 xmm3 [orig:87 ymm ] [87]) (parallel [ (const_int 2 [0x2]) (const_int 3 [0x3]) ]))) "{vec_extract_hi_v4di} (nil)) (insn 99 94 127 8 (set (reg:V4SI 20 xmm0 [180]) (plus:V4SI (reg:V4SI 20 xmm0 [178]) (reg:V4SI 23 xmm3 [176]))) " {*addv4si3} (nil)) (insn 127 99 107 8 (set (reg:SI 0 ax [181]) (reg:SI 20 xmm0 [180])) " {*movsi_internal} (nil)) (insn 107 127 123 8 (use (reg/i:SI 0 ax)) "test.c":40:1 -1 (nil)) (note 123 107 0 NOTE_INSN_DELETED)