diff options
author | Michael Gottesman <mgottesman@apple.com> | 2013-04-16 21:18:42 +0000 |
---|---|---|
committer | Michael Gottesman <mgottesman@apple.com> | 2013-04-16 21:18:42 +0000 |
commit | fc89cc2a91a157693cd2263a831e1e4f061f1a29 (patch) | |
tree | 6b44a77c043e82fb8905ded6324394d771704d90 | |
parent | eb5f089ce1ee62c548be65e3e2c81bb2ac7968d7 (diff) | |
download | bcm5719-llvm-fc89cc2a91a157693cd2263a831e1e4f061f1a29.tar.gz bcm5719-llvm-fc89cc2a91a157693cd2263a831e1e4f061f1a29.zip |
[2/6] ARM Neon Intrinsic Tablegen Test Generator.
This patch causes OpInst records to be silently identified with their Non-Op
inst counterparts so that the same test generation infrastructure can be used to
generate tests.
Reviewed by Bob Wilson.
llvm-svn: 179628
-rw-r--r-- | clang/utils/TableGen/NeonEmitter.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/clang/utils/TableGen/NeonEmitter.cpp b/clang/utils/TableGen/NeonEmitter.cpp index c605859717d..b952f78d4b9 100644 --- a/clang/utils/TableGen/NeonEmitter.cpp +++ b/clang/utils/TableGen/NeonEmitter.cpp @@ -98,7 +98,12 @@ enum ClassKind { ClassI, // generic integer instruction, e.g., "i8" suffix ClassS, // signed/unsigned/poly, e.g., "s8", "u8" or "p8" suffix ClassW, // width-specific instruction, e.g., "8" suffix - ClassB // bitcast arguments with enum argument to specify type + ClassB, // bitcast arguments with enum argument to specify type + ClassL, // Logical instructions which are op instructions + // but we need to not emit any suffix for in our + // tests. + ClassNoTest // Instructions which we do not test since they are + // not TRUE instructions. }; /// NeonTypeFlags - Flags to identify the types for overloaded Neon @@ -204,9 +209,20 @@ public: Record *SI = R.getClass("SInst"); Record *II = R.getClass("IInst"); Record *WI = R.getClass("WInst"); + Record *SOpI = R.getClass("SOpInst"); + Record *IOpI = R.getClass("IOpInst"); + Record *WOpI = R.getClass("WOpInst"); + Record *LOpI = R.getClass("LOpInst"); + Record *NoTestOpI = R.getClass("NoTestOpInst"); + ClassMap[SI] = ClassS; ClassMap[II] = ClassI; ClassMap[WI] = ClassW; + ClassMap[SOpI] = ClassS; + ClassMap[IOpI] = ClassI; + ClassMap[WOpI] = ClassW; + ClassMap[LOpI] = ClassL; + ClassMap[NoTestOpI] = ClassNoTest; } // run - Emit arm_neon.h.inc |