This is the mail archive of the gcc@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]

Re: recent troubles with float vectors & bitwise ops


On 8/23/07, Paolo Bonzini <paolo.bonzini@lu.unisi.ch> 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.


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