Comments
Patch
===================================================================
@@ -29268,13 +29268,17 @@ ix86_builtin_vectorized_function (tree fndecl, tre
}
break;
+ case BUILT_IN_IRINT:
case BUILT_IN_LRINT:
+ case BUILT_IN_LLRINT:
if (out_mode == SImode && out_n == 4
&& in_mode == DFmode && in_n == 2)
return ix86_builtins[IX86_BUILTIN_VEC_PACK_SFIX];
break;
+ case BUILT_IN_IRINTF:
case BUILT_IN_LRINTF:
+ case BUILT_IN_LLRINTF:
if (out_mode == SImode && in_mode == SFmode)
{
if (out_n == 4 && in_n == 4)
Hello! Attached patch fixes omission from "(int) rint ()" conversion to __builtin_irint (). We can vectorize this function when out_mode is SImode, no matter how the builtin is called. Throw in also BUILT_IN_LLRINT, just for completion ... 2011-11-07 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.c (ix86_builtin_vectorized_function): Handle BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF. Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline SVN. BTW: It would be nice if convert.c also converted "(int) lrint ()" to __builtin_lrint (), but this is somehow beyond my middle-end skills... Uros.