[PATCH] D106120: [PowerPC] Implement vector bool/pixel initialization under -faltivec-src-compat=xl

Daniel Kolesa via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 15 14:58:13 PST 2021


q66 added a comment.

and indeed, it affects semantics too:

  /tmp$ clang++ test.cc -o test -faltivec-src-compat=xl                                                                                                                                                                          
  /tmp$ ./test
  b
  b
  b
  /tmp$ clang++ test.cc -o test -faltivec-src-compat=gcc                                                                                                                                                                         
  /tmp$ ./test                                                                                                                                                                                                                   
  Dv4_i
  Dv4_i
  Dv8_s
  /tmp$ clang++ test.cc -o test -faltivec-src-compat=mixed                                                                                                                                                                       
  test.cc:10:20: warning: Current handling of vector bool and vector pixel types in this context are deprecated. The default behaviour will soon change to that implied by the '-altivec-compat=xl' option [-Wdeprecated-altivec-src-compat]
      auto cmp = (v1 == v2);
                     ^
  test.cc:12:22: warning: Current handling of vector bool and vector pixel types in this context are deprecated. The default behaviour will soon change to that implied by the '-altivec-compat=xl' option [-Wdeprecated-altivec-src-compat]
      auto pcmp = (pv1 == pv2);
                       ^
  2 warnings generated.
  /tmp$ ./test                                                                                                                                                                                                                   
  Dv4_i
  b
  Dv8_s
  /tmp$ cat test.cc
  #include <typeinfo>
  #include <cstdio>
  
  typedef float simd4f __attribute__((vector_size(16)));
  
  int main() {
      simd4f v1, v2;
      vector float fv1, fv2;
      vector pixel pv1, pv2;
      auto cmp = (v1 == v2);
      auto acmp = (fv1 == fv2);
      auto pcmp = (pv1 == pv2);
      printf("%s\n", typeid(cmp).name());
      printf("%s\n", typeid(acmp).name());
      printf("%s\n", typeid(pcmp).name());
  }


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106120/new/

https://reviews.llvm.org/D106120



More information about the cfe-commits mailing list