Repository: pytorch
Issue: PPC64le: vsx_helpers.h errors
Labels: module: build,triaged

### 🐛 Describe the bug

Hi,

I am compiling pytorch 2.1.0-rc3 from source on RHEL8 using the PPC64LE CPU architecture and CUDA support (7.0 for V100).
```bash
python3 -m pip install -r requirements.txt
USE_CUDA=1 BLAS=OpenBLAS MAX_JOBS=64 ATEN_AVX512_256=OFF BUILD_TEST=0 python3 setup.py develop
```

```
In file included from /g/g90/huebl1/src/pytorch/aten/src/ATen/native/Col2Im.cpp:6:
In file included from /g/g90/huebl1/src/pytorch/aten/src/ATen/native/im2col.h:7:
In file included from /g/g90/huebl1/src/pytorch/aten/src/ATen/native/cpu/utils.h:4:
In file included from /g/g90/huebl1/src/pytorch/aten/src/ATen/cpu/vec/vec.h:6:
In file included from /g/g90/huebl1/src/pytorch/aten/src/ATen/cpu/vec/vec256/vec256.h:19:
In file included from /g/g90/huebl1/src/pytorch/aten/src/ATen/cpu/vec/vec256/vsx/vec256_common_vsx.h:5:
/g/g90/huebl1/src/pytorch/aten/src/ATen/cpu/vec/vec256/vsx/vsx_helpers.h:57:10: error: excess elements in scalar initializer
  vint16 vint0 = {0, 0, 0, 0 ,0, 0, 0, 0};
         ^         ~~~~~~~~~~~~~~~~~~~~~~
/g/g90/huebl1/src/pytorch/aten/src/ATen/cpu/vec/vec256/vsx/vsx_helpers.h:58:10: error: no matching function for call to 'vec_vsubuhm'
  return vec_vsubuhm(vint0, vec_in);
         ^~~~~~~~~~~
/usr/tce/packages/clang/clang-12.0.1/release/lib/clang/12.0.1/include/altivec.h:11484:45: note: candidate function not viable: no known conversion from 'vint16' (aka 'short') to '__vector short' (vector of 8 'short' values) for 1st argument
static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector short __a,
                                            ^
/usr/tce/packages/clang/clang-12.0.1/release/lib/clang/12.0.1/include/altivec.h:11489:45: note: candidate function not viable: no known conversion from 'vint16' (aka 'short') to '__vector __bool unsigned short' (vector of 8 'unsigned short' values) for 1st argument
static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector bool short __a,
                                            ^
/usr/tce/packages/clang/clang-12.0.1/release/lib/clang/12.0.1/include/altivec.h:11494:45: note: candidate function not viable: no known conversion from 'vint16' (aka 'short') to '__vector short' (vector of 8 'short' values) for 1st argument
static __inline__ vector short __ATTRS_o_ai vec_vsubuhm(vector short __a,
                                            ^
/usr/tce/packages/clang/clang-12.0.1/release/lib/clang/12.0.1/include/altivec.h:11500:1: note: candidate function not viable: no known conversion from 'vint16' (aka 'short') to '__vector unsigned short' (vector of 8 'unsigned short' values) for 1st argument
vec_vsubuhm(vector unsigned short __a, vector unsigned short __b) {
^
/usr/tce/packages/clang/clang-12.0.1/release/lib/clang/12.0.1/include/altivec.h:11505:1: note: candidate function not viable: no known conversion from 'vint16' (aka 'short') to '__vector __bool unsigned short' (vector of 8 'unsigned short' values) for 1st argument
vec_vsubuhm(vector bool short __a, vector unsigned short __b) {
^
/usr/tce/packages/clang/clang-12.0.1/release/lib/clang/12.0.1/include/altivec.h:11510:1: note: candidate function not viable: no known conversion from 'vint16' (aka 'short') to '__vector unsigned short' (vector of 8 'unsigned short' values) for 1st argument
vec_vsubuhm(vector unsigned short __a, vector bool short __b) {
^
```
- https://github.com/pytorch/pytorch/blob/v2.1.0-rc3/aten/src/ATen/cpu/vec/vec256/vsx/vsx_helpers.h#L57
- https://github.com/pytorch/pytorch/blob/v2.1.0-rc3/aten/src/ATen/cpu/vec/vec256/vsx/vsx_helpers.h#L11
- ...

Using `ATEN_AVX512_256=ON` leads to the same errors.

Full log: [torch.zip](https://github.com/pytorch/pytorch/files/12564550/torch.zip)

### Versions

- pytorch 2.1.0-rc3
- CUDA 12.0.76
- Clang 12.0.1
- RHEL 8.7

cc @malfet @seemethere