[Bug target/102182] Runtime error for gcc.dg/torture/fp-int-convert-float16.c
crazylht at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Sep 3 06:39:10 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102182
--- Comment #3 from Hongtao.liu <crazylht at gmail dot com> ---
during pass_expand we got
(debug_insn 24 23 0 (debug_marker) "test1.c":10:3 -1
(nil))
;; fv2.1_3 ={v} fv2;
(insn 25 24 0 (set (reg:HF 84 [ fv2.1_3 ])
(mem/v/c:HF (symbol_ref:SI ("fv2.1") [flags 0x2] <var_decl
0x7f1f0ae4c000 fv2>) [2 fv2+0 S2 A16])) "test1.c":10:9 -1
(nil))
;; _4 = (unsigned int) fv2.1_3;
(insn 31 25 32 (parallel [
(set (reg:DI 94)
(fix:DI (reg:SF 93)))
(clobber (reg:CC 17 flags))
]) "test1.c":10:9 -1
(nil))
But __extendhfsf2 is ommited under -Os,
For -O2 expand does the right thing
;; fv2.1_3 ={v} fv2;
(insn 17 16 0 (set (reg:HF 84 [ fv2.1_3 ])
(mem/v/c:HF (symbol_ref:SI ("fv2.1") [flags 0x2] <var_decl
0x7f166dab4360 fv2>) [2 fv2+0 S2 A16])) "test1.c":10:9 -1
(nil))
;; _4 = (unsigned int) fv2.1_3;
(insn 18 17 19 (set (mem:HF (reg/f:SI 79 virtual-outgoing-args) [0 S2 A32])
(reg:HF 84 [ fv2.1_3 ])) "test1.c":10:9 -1
(nil))
(call_insn/u 19 18 20 (set (reg:SF 8 st)
(call (mem:QI (symbol_ref:SI ("__extendhfsf2") [flags 0x41]
<function_decl 0x7f166dac5000 __extendhfsf2>) [0 S1 A8])
(const_int 16 [0x10]))) "test1.c":10:9 -1
(expr_list:REG_CALL_DECL (symbol_ref:SI ("__extendhfsf2") [flags 0x41]
<function_decl 0x7f166dac5000 __extendhfsf2>)
(expr_list:REG_EH_REGION (const_int -2147483648 [0xffffffff80000000])
(nil)))
(expr_list (use (mem:HF (reg/f:SI 79 virtual-outgoing-args) [0 S2 A8]))
(nil)))
(insn 20 19 21 (set (reg:SF 93)
(reg:SF 8 st)) "test1.c":10:9 -1
(expr_list:REG_EQUAL (float_extend:SF (reg:HF 84 [ fv2.1_3 ]))
(nil)))
(insn 21 20 22 (set (reg:V4SF 95)
(vec_duplicate:V4SF (mem/u/c:SF (symbol_ref/u:SI ("*.LC3") [flags 0x2])
[0 S4 A32]))) "test1.c":10:9 7413 {vec_dupv4sf}
(nil))
(insn 22 21 23 (set (reg:V4SF 94)
(reg:V4SF 95)) "test1.c":10:9 -1
(expr_list:REG_EQUAL (const_vector:V4SF [
(const_double:SF 2.147483648e+9 [0x0.8p+32]) repeated x4
])
(nil)))
(insn 23 22 0 (parallel [
(set (reg:SI 85 [ _4 ])
(unsigned_fix:SI (reg:SF 93)))
(use (reg:V4SF 94))
(clobber (scratch:V4SF))
(clobber (scratch:V4SF))
]) "test1.c":10:9 -1
(expr_list:REG_EQUAL (unsigned_fix:SI (reg:SF 93))
(nil)))
More information about the Gcc-bugs
mailing list