mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
b219464fb0
Summary: Use the expanded features of the TableGen generic tables to avoid manually adding the combinatorially exploded set of intrinsics. The getAMDGPUImageDimIntrinsic lookup function is early-out, i.e. non-AMDGPU intrinsics will never look at the underlying table. Use a generic approach for getting the new intrinsic overload to keep the code simple, and make the image dmask handling more generic: - handle non-sampler image loads - handle the case where the set of demanded elements is not a prefix There is some overlap between this code and an optimization that happens in the backend during code generation. They currently complement each other: - only the codegen optimization can generate vec3 loads - only the InstCombine optimization can handle D16 The InstCombine optimization also likely covers more cases since the codegen optimization is fairly ad-hoc. Ideally, we'll remove the optimization in codegen once the infrastructure for vec3 is in place (which will probably take a long time). Modify the test cases to use dimension-aware intrinsics. This makes it easier to see that the test coverage for the new intrinsics is equivalent, and the old style intrinsics will be removed in a follow-up commit anyway. Change-Id: I4b91ea661413d13004956fe4ef7d13d41b8ce3ad Reviewers: arsenm, rampitec, majnemer Subscribers: kzhuravl, wdng, mgorny, yaxunl, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D48165 llvm-svn: 335230
12 lines
319 B
TableGen
12 lines
319 B
TableGen
include "llvm/TableGen/SearchableTable.td"
|
|
include "llvm/IR/Intrinsics.td"
|
|
|
|
def AMDGPUImageDMaskIntrinsicTable : GenericTable {
|
|
let FilterClass = "AMDGPUImageDMaskIntrinsic";
|
|
let Fields = ["Intr"];
|
|
|
|
let PrimaryKey = ["Intr"];
|
|
let PrimaryKeyName = "getAMDGPUImageDMaskIntrinsic";
|
|
let PrimaryKeyEarlyOut = 1;
|
|
}
|