brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 09d3dc8 Raw
85 lines · cpp
1// RUN: %clang_cc1 -target-feature +altivec -flax-vector-conversions=none -triple powerpc-unknown-unknown -fcxx-exceptions -verify=expected,precxx17 %std_cxx98-14 %s2// RUN: %clang_cc1 -target-feature +altivec -flax-vector-conversions=none -triple powerpc-unknown-unknown -fcxx-exceptions -verify %std_cxx17- %s3 4typedef int V4i __attribute__((vector_size(16)));5 6void test_vec_step(vector short arg1) {7  vector bool char vbc;8  vector signed char vsc;9  vector unsigned char vuc;10  vector bool short vbs;11  vector short vs;12  vector unsigned short vus;13  vector pixel vp;14  vector bool int vbi;15  vector int vi;16  vector unsigned int vui;17  vector float vf;18 19  vector int *pvi;20 21  int res1[vec_step(arg1) == 8 ? 1 : -1];22  int res2[vec_step(vbc) == 16 ? 1 : -1];23  int res3[vec_step(vsc) == 16 ? 1 : -1];24  int res4[vec_step(vuc) == 16 ? 1 : -1];25  int res5[vec_step(vbs) == 8 ? 1 : -1];26  int res6[vec_step(vs) == 8 ? 1 : -1];27  int res7[vec_step(vus) == 8 ? 1 : -1];28  int res8[vec_step(vp) == 8 ? 1 : -1];29  int res9[vec_step(vbi) == 4 ? 1 : -1];30  int res10[vec_step(vi) == 4 ? 1 : -1];31  int res11[vec_step(vui) == 4 ? 1 : -1];32  int res12[vec_step(vf) == 4 ? 1 : -1];33  int res13[vec_step(*pvi) == 4 ? 1 : -1];34}35 36void f(V4i a)37{38}39 40void test1()41{42  V4i vGCC;43  vector int vAltiVec;44 45  f(vAltiVec);46  vGCC = vAltiVec;47  bool res = vGCC > vAltiVec;48  vAltiVec = 0 ? vGCC : vGCC;49}50 51template<typename T>52void template_f(T param) {53  param++;54}55 56void test2()57{58  vector int vi;59  ++vi;60  vi++;61  --vi;62  vi--;63  vector float vf;64  vf++;65 66  ++vi=vi; // precxx17-warning {{unsequenced}}67  (++vi)[1]=1;68  template_f(vi);69}70 71namespace LValueToRValueConversions {72  struct Struct {73    float f();74    int n();75  };76 77  vector float initFloat = (vector float)(Struct().f); // expected-error {{did you mean to call it}}78  vector int initInt = (vector int)(Struct().n); // expected-error {{did you mean to call it}}79}80 81void f() {82  try {}83  catch (vector pixel px) {}84};85