------- Comment #1 from bonzini at gnu dot org 2006-12-14 17:23 ------- Builtin vmuloub has always returned "wrong" types, because it derives its types simply from the modes of the altivec_vmuloub pattern. For this reason, the C front-end uses vec_vmuloub instead: this one is expanded by resolve_overloaded_builtin to add the appropriate casts on both the arguments and the results.
The way to solve this bug could be to pass the two operands to rs6000_builtin_mul_widen_even, and get back the fully-built tree, including conversions to the appropriate return type. -- bonzini at gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bonzini at gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30210