[Bug target/98730] vceqzq_p64 does not generate vceq with immediate 0

clyon at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 21 15:39:48 GMT 2021


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

--- Comment #3 from Christophe Lyon <clyon at gcc dot gnu.org> ---
At expand time, we have:
(insn 13 12 14 2 (set (reg:V2SI 121 [ _11 ])
        (neg:V2SI (eq:V2SI (subreg:V2SI (reg:DI 116 [ _6 ]) 0)
                (subreg:V2SI (reg:DI 118 [ _8 ]) 0)))) "arm_neon.h":2404:22
1649 {neon_vceqv2si_insn}
     (nil))
(insn 17 16 18 2 (set (reg:V2SI 128 [ _18 ])
        (neg:V2SI (eq:V2SI (subreg:V2SI (reg:DI 124 [ _14 ]) 0)
                (subreg:V2SI (reg:DI 125 [ _15 ]) 0)))) "arm_neon.h":2404:22
1649 {neon_vceqv2si_insn}
     (nil))

in fwprop1:
starting the processing of deferred insns
ending the processing of deferred insns
df_analyze called
df_worklist_dataflow_doublequeue: n_basic_blocks 3 n_edges 2 count 3 (    1)
df_worklist_dataflow_doublequeue: n_basic_blocks 3 n_edges 2 count 3 (    1)
change not profitable (cost 0 -> cost 4)
rescanning insn with uid = 12.
verify found no changes in insn with uid = 12.
rescanning insn with uid = 13.
verify found no changes in insn with uid = 13.
rescanning insn with uid = 16.
verify found no changes in insn with uid = 16.
rescanning insn with uid = 17.
verify found no changes in insn with uid = 17.
change not profitable (cost 0 -> cost 12)
change not profitable (cost 0 -> cost 4)
rescanning insn with uid = 13.
verify found no changes in insn with uid = 13.
change not profitable (cost 0 -> cost 4)
change not profitable (cost 80 -> cost 84)
change not profitable (cost 80 -> cost 84)
change not profitable (cost 80 -> cost 84)
rescanning insn with uid = 17.
verify found no changes in insn with uid = 17.
change not profitable (cost 80 -> cost 84)
change not profitable (cost 80 -> cost 84)

and insns 13 and 17 are:
(insn 13 8 14 2 (set (reg:V2SI 121 [ _11 ])
        (neg:V2SI (eq:V2SI (subreg:V2SI (reg:V2DI 113 [ v2.0_1 ]) 8)
                (subreg:V2SI (reg:V4SI 114 [ _4 ]) 8)))) "arm_neon.h":2404:22
1649 {neon_vceqv2si_insn}
     (expr_list:REG_EQUAL (neg:V2SI (eq:V2SI (subreg:V2SI (reg:V2DI 113 [
v2.0_1 ]) 8)
                (const_vector:V2SI [
                        (const_int 0 [0]) repeated x2
                    ])))
        (nil)))
(insn 17 14 18 2 (set (reg:V2SI 128 [ _18 ])
        (neg:V2SI (eq:V2SI (subreg:V2SI (reg:V2DI 113 [ v2.0_1 ]) 0)
                (subreg:V2SI (reg:V4SI 114 [ _4 ]) 8)))) "arm_neon.h":2404:22
-1
     (expr_list:REG_EQUAL (neg:V2SI (eq:V2SI (subreg:V2SI (reg:V2DI 113 [
v2.0_1 ]) 0)
                (const_vector:V2SI [
                        (const_int 0 [0]) repeated x2
                    ])))
        (nil)))


More information about the Gcc-bugs mailing list