summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/avx512-reduceMinMaxIntrin.c
Commit message (Collapse)AuthorAgeFilesLines
* [NewPM] Run avx*-builtins.c tests under the new pass manager onlyLeonard Chan2019-07-261-141/+149
| | | | | | | | | | | | | | | | | | | | This patch changes the following tests to run under the new pass manager only: ``` Clang :: CodeGen/avx512-reduceMinMaxIntrin.c (1 of 4) Clang :: CodeGen/avx512vl-builtins.c (2 of 4) Clang :: CodeGen/avx512vlbw-builtins.c (3 of 4) Clang :: CodeGen/avx512f-builtins.c (4 of 4) ``` The new PM added extra bitcasts that weren't checked before. For reduceMinMaxIntrin.c, the issue was mostly the alloca's being in a different order. Other changes involved extra bitcasts, and differently ordered loads and stores, but the logic should still be the same. Differential revision: https://reviews.llvm.org/D65110 llvm-svn: 367157
* Recommit r335070 "[X86] Rewrite the max and min reduction intrinsics to make ↵Craig Topper2018-06-191-2287/+2407
| | | | | | | | better use of other functions and to reduce width to 256 and 128 bits were possible."" Test has been updated to reflect the IRGen. llvm-svn: 335075
* Revert r335070 "[X86] Rewrite the max and min reduction intrinsics to make ↵Craig Topper2018-06-191-2598/+2285
| | | | | | | | better use of other functions and to reduce width to 256 and 128 bits were possible." The test changes are failing the buildbot and its going to take me some time to fix it. llvm-svn: 335072
* [X86] Rewrite the max and min reduction intrinsics to make better use of ↵Craig Topper2018-06-191-2285/+2598
| | | | | | | | | | | | | | other functions and to reduce width to 256 and 128 bits were possible. We only need to use 512 bit vectors all the way through v8i64 reductions since those max instructions are new to avx512f and only available in 512 bits until SKX. For v16i32 and floating point we have legacy 128/256 bit instructions we can use. I've tried to use other intrinsics to reduce the verbosity of the code and avoid having to mention all the shuffles. I've also removed all the -1 shuffle indices so the output sequence is fully specified and not left to backend optimization. Differential Revision: https://reviews.llvm.org/D47401 llvm-svn: 335070
* Revert r333347 "[X86] Rewrite the max and min reduction intrinsics to make ↵Craig Topper2018-05-261-2598/+2285
| | | | | | | | better use of other functions and to reduce width to 256 and 128 bits were possible." This wasn't supposed to be commited yet. llvm-svn: 333349
* [X86] Rewrite the max and min reduction intrinsics to make better use of ↵Craig Topper2018-05-261-2285/+2598
| | | | | | | | | | | | | | | | | | | other functions and to reduce width to 256 and 128 bits were possible. Summary: We only need to use 512 bit vectors all the way through v8i64 reductions since those max instructions are new to avx512f and only available in 512 bits until SKX. For v16i32 and floating point we have legacy 128/256 bit instructions we can use. I've tried to use other intrinsics to reduce the verbosity of the code and avoid having to mention all the shuffles. I've also removed all the -1 shuffle indices so the output sequence is fully specified and not left to backend optimization. Reviewers: RKSimon, spatel, GBuella Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D47401 llvm-svn: 333347
* [X86] In the floating point max reduction intrinsics, negate infinity before ↵Craig Topper2018-05-231-6/+4
| | | | | | | | feeding it to set1. Previously we negated the whole vector after splatting infinity. But its better to negate the infinity before splatting. This generates IR with the negate already folded with the infinity constant. llvm-svn: 333062
* [X86] Remove mask argument from more builtins that are handled completely in ↵Craig Topper2018-05-231-200/+0
| | | | | | CGBuiltin.cpp. Just wrap a select builtin around them in the header file instead. llvm-svn: 333061
* CodeGen tests - typo fixes NFCGabor Buella2018-04-101-13/+13
| | | | llvm-svn: 329689
* [x86] remove RUNs that were checking fully optimized IRSanjay Patel2017-09-251-340/+2512
| | | | | | | | Clang regression tests that depend on the optimizer can break when there are changes to LLVM...as in: https://reviews.llvm.org/rL314117 llvm-svn: 314144
* [x86] fix tests with wrong dependency to pass because they broke with r294049Sanjay Patel2017-02-031-4/+6
| | | | llvm-svn: 294058
* Fixing "type" issue for (epi32) Michael Zuckerman2016-10-301-4/+4
| | | | | | and replaceing hardcoded inf with clang builtin inf "__builtin_inff()" for float ({max|min}_{pd|ps}) llvm-svn: 285519
* [X86][AVX512][Clang][Intrinsics][reduce] Adding missing reduce (max|min) ↵Michael Zuckerman2016-10-291-0/+437
intrinsics to Clang . After LGTM and Check-all Vector-reduction arithmetic accepts vectors as inputs and produces scalars as outputs.This class of vector operation forms the basis of many scientific computations. In vector-reduction arithmetic, the evaluation off is independent of the order of the input elements of V. Reviewer: 1. craig.topper 2. igorb Differential Revision: https://reviews.llvm.org/D25988 llvm-svn: 285493
OpenPOWER on IntegriCloud