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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Big-endian:
(insn 5 4 6 (set (reg:DI 73)
        (high:DI (symbol_ref:DI ("_GLOBAL_OFFSET_TABLE_")))) t.i:5 -1
     (nil))

(insn 6 5 7 (set (reg/f:SI 76)
        (unspec:SI [
                (mem/u/c:SI (lo_sum:SI (nil)
                        (symbol_ref:SI ("dbs") [flags 0x40]  <var_decl
0x7fe8ca85aab0 dbs>)) [0  S4 A8])
            ] UNSPEC_GOTSMALLPIC28K)) t.i:5 -1
     (expr_list:REG_EQUAL (symbol_ref:SI ("dbs") [flags 0x40]  <var_decl
0x7fe8ca85aab0 dbs>)
        (nil)))


Little-endian:

(insn 5 4 6 (set (reg:DI 73)
        (high:DI (symbol_ref:DI ("_GLOBAL_OFFSET_TABLE_")))) t.i:5 -1
     (nil))

(insn 6 5 7 (set (reg/f:SI 76)
        (unspec:SI [
                (mem/u/c:SI (lo_sum:SI (subreg:SI (reg:DI 73) 0)
                        (symbol_ref:SI ("dbs") [flags 0x40]  <var_decl
0x7fcb3777aab0 dbs>)) [0  S4 A8])
            ] UNSPEC_GOTSMALLPIC28K)) t.i:5 -1
     (expr_list:REG_EQUAL (symbol_ref:SI ("dbs") [flags 0x40]  <var_decl
0x7fcb3777aab0 dbs>)
        (nil)))


------- CUT -------
Looks like lowpart is doing the wrong thing here ....

Reply via email to