//===-- AMDGPUSearchableTables.td - ------------------------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// include "llvm/TableGen/SearchableTable.td" //===----------------------------------------------------------------------===// // Resource intrinsics table. //===----------------------------------------------------------------------===// class RsrcIntrinsic : SearchableTable { let SearchableFields = ["Intr"]; let EnumNameField = ?; Intrinsic Intr = !cast(intr); bits<8> RsrcArg = intr.RsrcArg; bit IsImage = intr.IsImage; } foreach intr = !listconcat(AMDGPUBufferIntrinsics, AMDGPUImageIntrinsics, AMDGPUImageDimIntrinsics, AMDGPUImageDimGatherIntrinsics, AMDGPUImageDimGetResInfoIntrinsics, AMDGPUImageDimAtomicIntrinsics) in { def : RsrcIntrinsic(intr)>; } class SourceOfDivergence : SearchableTable { let SearchableFields = ["Intr"]; let EnumNameField = ?; Intrinsic Intr = intr; } def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; foreach intr = AMDGPUImageDimAtomicIntrinsics in def : SourceOfDivergence; class D16ImageDimIntrinsic : SearchableTable { let SearchableFields = ["Intr"]; let EnumNameField = ?; Intrinsic Intr = intr; code D16HelperIntr = !cast("AMDGPUIntrinsic::SI_image_d16helper_" # intr.P.OpMod # intr.P.Dim.Name); } foreach intr = !listconcat(AMDGPUImageDimIntrinsics, AMDGPUImageDimGatherIntrinsics) in { def : D16ImageDimIntrinsic; }