[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