http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43716

--- Comment #33 from Uros Bizjak <ubizjak at gmail dot com> 2012-07-21 11:31:18 
UTC ---
The NaN is generated as a mask for DFmode ABS_EXPR:

(insn 124 123 125 (set (reg:V2DF 508)
        (mem/u/c:V2DF (symbol_ref/u:DI ("*.LC13") [flags 0x2]) [5 S16 A128]))
doduc.f90:5376 -1
     (expr_list:REG_EQUAL (const_vector:V2DF [
                (const_double:DF +QNaN [+QNaN])
                (const_double:DF 0.0 [0x0.0p+0])
            ])
        (nil)))

or V2DFmode ABS_EXPR:

(insn 1648 1647 1649 (set (reg:V2DF 4657)
        (mem/u/c:V2DF (symbol_ref/u:DI ("*.LC138") [flags 0x2]) [5 S16 A128]))
doduc.f90:1851 -1
     (expr_list:REG_EQUAL (const_vector:V2DF [
                (const_double:DF +QNaN [+QNaN])
                (const_double:DF +QNaN [+QNaN])
            ])
        (nil)))

Probably, some mixup happens somewhere in RTL optimization passes.

Reply via email to