https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118832

Li Pan <pan2.li at intel dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |juzhe.zhong at rivai dot ai

--- Comment #2 from Li Pan <pan2.li at intel dot com> ---
Link PR117878, looks like the same problem of PR117878, the
define_insn_and_split rtx is introduced by reload, and then keep existing until
final pass.

test.c.309r.outof_cfglayout:105:        (vec_duplicate:RVVM2DI (reg:DI 204)))
"test.c":7:10 3626 {*vec_duplicatervvm2di}                                     
                                                                               
                               test.c.309r.outof_cfglayout:168:       
(vec_duplicate:RVVM1SI (const_int -16776961 [0xffffffffff0000ff])))
"test.c":7:10 3623 {*vec_duplicatervvm1si}
test.c.322r.reload:4433:        (vec_duplicate:RVVM2DI (reg:DI 14 a4 [393])))
"test.c":12:10 3626 {*vec_duplicatervvm2di}
test.c.322r.reload:4866:        (vec_duplicate:RVVM2DI (reg:DI 12 a2 [370])))
"test.c":12:10 3626 {*vec_duplicatervvm2di}
test.c.323r.postreload:570:        (vec_duplicate:RVVM2DI (reg:DI 14 a4
[393]))) "test.c":12:10 3626 {*vec_duplicatervvm2di}
...
...
...
test.c.358r.nothrow:1013:        (vec_duplicate:RVVM2DI (reg:DI 14 a4 [393])))
"test.c":12:10 3626 {*vec_duplicatervvm2di}
test.c.360r.final:487:        (vec_duplicate:RVVM2DI (reg:DI 12 a2 [370])))
"test.c":12:10 3626 {*vec_duplicatervvm2di}
test.c.360r.final:1018:        (vec_duplicate:RVVM2DI (reg:DI 14 a4 [393])))
"test.c":12:10 3626 {*vec_duplicatervvm2di} 

And then it will hit the assert as nothing to split.

2808 ........  {
2809 ........    rtx_insn *new_rtx = try_split (body, insn, 0);
2810
2811 ........    /* If we didn't split the insn, go away.  */
2812 ........    if (new_rtx == insn && PATTERN (new_rtx) == body)
2813 ........      fatal_insn ("could not split insn", insn);                  
                                                                               
                                                                               
                             2814

---------------------------------------------------------------------

Hi Robin, Juzhe, Kito and Jeff,

Shall we take something like ix86_pre_reload_split here, (occurs twice, may be
more in future). Or just find the specific insn and fix it similar as PR117878?
Personally, I may prefer ix86_pre_reload_split here.

Reply via email to