[SveEmitter] Add range checks for immediates and predicate patterns.
authorSander de Smalen <sander.desmalen@arm.com>
Tue, 14 Apr 2020 14:56:36 +0000 (15:56 +0100)
committerSander de Smalen <sander.desmalen@arm.com>
Tue, 14 Apr 2020 15:49:32 +0000 (16:49 +0100)
commitc8a5b30bac695e9fbb592cf77364a60ebd6e0dbd
tree240c970d5af8618e319b34b452b2bbf6c785225e
parentc5a399189589f889155c2e2ba093d2dea4b0da69
[SveEmitter] Add range checks for immediates and predicate patterns.

Summary:
This patch adds a mechanism to easily add range checks for a builtin's
immediate operands. This patch is tested with the qdech intrinsic, which takes
both an enum for the predicate pattern, as well as an immediate for the
multiplier.

Reviewers: efriedma, SjoerdMeijer, rovka

Reviewed By: efriedma, SjoerdMeijer

Subscribers: mgorny, tschuett, mgrang, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D76678
12 files changed:
clang/include/clang/Basic/CMakeLists.txt
clang/include/clang/Basic/TargetBuiltins.h
clang/include/clang/Basic/arm_sve.td
clang/include/clang/Sema/Sema.h
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/CodeGen/CodeGenFunction.h
clang/lib/Sema/SemaChecking.cpp
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdech.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_qdech.c [new file with mode: 0644]
clang/utils/TableGen/SveEmitter.cpp
clang/utils/TableGen/TableGen.cpp
clang/utils/TableGen/TableGenBackends.h