This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/31582] New: ix86_expand_vec_set_builtin modifies source
- From: "hjl at lucon dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Apr 2007 19:43:23 -0000
- Subject: [Bug target/31582] New: ix86_expand_vec_set_builtin modifies source
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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