diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2021-07-20 18:14:38 +0200 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2021-07-26 16:57:28 +0200 |
commit | 8cd8120a7b5d4c6f7674679b53477b51fd054a27 (patch) | |
tree | 4542272c3e8e96e37f607727586dc4a9deb9f18c /clang/lib/Sema/SemaChecking.cpp | |
parent | 7a1e73f0b9fcfec0e90aff735f0ac4cfb6b9ec41 (diff) | |
download | llvm-8cd8120a7b5d4c6f7674679b53477b51fd054a27.zip llvm-8cd8120a7b5d4c6f7674679b53477b51fd054a27.tar.gz llvm-8cd8120a7b5d4c6f7674679b53477b51fd054a27.tar.bz2 |
[SystemZ] Add support for new cpu architecture - arch14
This patch adds support for the next-generation arch14
CPU architecture to the SystemZ backend.
This includes:
- Basic support for the new processor and its features.
- Detection of arch14 as host processor.
- Assembler/disassembler support for new instructions.
- New LLVM intrinsics for certain new instructions.
- Support for low-level builtins mapped to new LLVM intrinsics.
- New high-level intrinsics in vecintrin.h.
- Indicate support by defining __VEC__ == 10304.
Note: No currently available Z system supports the arch14
architecture. Once new systems become available, the
official system name will be added as supported -march name.
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 76f34f6..df1e3e9 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -3778,6 +3778,11 @@ bool Sema::CheckSystemZBuiltinFunctionCall(unsigned BuiltinID, case SystemZ::BI__builtin_s390_vfmaxdb: i = 2; l = 0; u = 15; break; case SystemZ::BI__builtin_s390_vsld: i = 2; l = 0; u = 7; break; case SystemZ::BI__builtin_s390_vsrd: i = 2; l = 0; u = 7; break; + case SystemZ::BI__builtin_s390_vclfnhs: + case SystemZ::BI__builtin_s390_vclfnls: + case SystemZ::BI__builtin_s390_vcfn: + case SystemZ::BI__builtin_s390_vcnf: i = 1; l = 0; u = 15; break; + case SystemZ::BI__builtin_s390_vcrnfs: i = 2; l = 0; u = 15; break; } return SemaBuiltinConstantArgRange(TheCall, i, l, u); } |