This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/31582] New: ix86_expand_vec_set_builtin modifies source


ix86_expand_vec_set_builtin is used to expand builtin funtions like

v4hi __builtin_ia32_vec_set_v4hi (v4hi, short, const int);

for pattens like

  [(set (match_operand:V8HI 0 "register_operand" "=x")
        (vec_merge:V8HI
          (vec_duplicate:V8HI
            (match_operand:HI 2 "nonimmediate_operand" "rm"))
          (match_operand:V8HI 1 "register_operand" "0") 
          (match_operand:SI 3 "const_pow2_1_to_128_operand" "n")))]

These builtins take 3 args. Operand 0 is used as both source and
target. However, ix86_expand_vec_set_builtin only uses 2 args and returns
the first arg as target. As the result, those builtins functions may
modify the source while they shouldn't.


-- 
           Summary: ix86_expand_vec_set_builtin modifies source
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl at lucon dot org
GCC target triplet: x86_64-unknown-linux-gnu


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]