diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2022-01-21 12:24:32 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2022-01-21 12:24:58 +0000 |
commit | 8ee135dcf8ff060656ad481c3e980fe8763576f5 (patch) | |
tree | 3dd61e4f358c905e1da3a5759cf644cb2d326432 /llvm/lib/Support/TargetParser.cpp | |
parent | 68db0e25df4b1edaa2c6080eb88453ab01ea01d3 (diff) | |
download | llvm-8ee135dcf8ff060656ad481c3e980fe8763576f5.zip llvm-8ee135dcf8ff060656ad481c3e980fe8763576f5.tar.gz llvm-8ee135dcf8ff060656ad481c3e980fe8763576f5.tar.bz2 |
[X86] Remove `__builtin_ia32_pmax/min` intrinsics and use generic `__builtin_elementwise_max/min`
D111985 added the generic `__builtin_elementwise_max` and `__builtin_elementwise_min` intrinsics with the same integer behaviour as the SSE/AVX instructions
This patch removes the `__builtin_ia32_pmax/min` intrinsics and just uses `__builtin_elementwise_max/min` - the existing tests see no changes:
```
__m256i test_mm256_max_epu32(__m256i a, __m256i b) {
// CHECK-LABEL: test_mm256_max_epu32
// CHECK: call <8 x i32> @llvm.umax.v8i32(<8 x i32> %{{.*}}, <8 x i32> %{{.*}})
return _mm256_max_epu32(a, b);
}
```
This requires us to add a `__v64qs` explicitly signed char vector type (we already have `__v16qs` and `__v32qs`).
Sibling patch to D117791
Differential Revision: https://reviews.llvm.org/D117798
Diffstat (limited to 'llvm/lib/Support/TargetParser.cpp')
0 files changed, 0 insertions, 0 deletions