https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82464

            Bug ID: 82464
           Summary: s390x z14: vector float: invalid parameter combination
                    for intrinsic '__builtin_s390_vec_xor'
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: markos at freevec dot org
  Target Milestone: ---
              Host: s390x-ibm-linux-gnu
            Target: s390x-ibm-linux-gnu
             Build: s390x-ibm-linux-gnu

In this small testcase:

#include <vecintrin.h>

typedef __vector float Packet4f;

int main() {
        Packet4f v1 = { 1.0, -1.0, -2.0, 2.0 };
        Packet4f v2 = { 2.0,  0.5,  0.1, 0.2 };

        Packet4f prod = vec_xor(v1, v2);
}

$ g++ -march=z14 -mzvector zvectortest2.cpp -o zvectortest2
zvectortest2.cpp: In function 'int main()':
zvectortest2.cpp:9:32: error: invalid parameter combination for intrinsic
'__builtin_s390_vec_xor'
  Packet4f prod = vec_xor(v1, v2);

However it works with vec_or() intrinsic and others (vec_and, etc), I guess
it's just an ommission.

Reply via email to