On 8/23/07, Paolo Bonzini <[EMAIL PROTECTED]> wrote:
> I've added 5 minutes ago an XFAILed test for exactly this code.  OTOH, I
> have also committed a fix that will avoid producing tons of shuffle and
> unpacking instructions when function "bar" is compiled with "-msse" but
> without "-msse2".
Thanks.

> I'm also going to file a missed optimization bug soon.
Ditto.

> I'm curious, does ICC support vector arithmetic like this? Do both
> functions compile? What code does it produce for bar?
No, icc9/10 only provide basic support for that extension (and then
only on linux i think)
# /opt/intel/cce/9.1.051/bin/icpc regressionorbugfix.cc
regressionorbugfix.cc(5): error: no operator "|" matches these operands
            operand types are: v4sf_t | v4sf_t
        return a + (b | c);
                      ^

regressionorbugfix.cc(8): error: no operator "|" matches these operands
            operand types are: v4si_t | v4si_t
        return a + (v4sf_t) ((v4si_t) b | (v4si_t) c);
                                        ^

but then it's more aggressive about intrinsics than gcc.
Like i said somewhere i got slightly better results when using that
extension than intrinsics with gcc 4.3 but haven't checked if i could
get the same result with builtins yet.

Reply via email to