LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/R600 - AMDGPUGenIntrinsics.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 177 227 78.0 %
Date: 2015-06-12 22:53:20 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* Intrinsic Function Source Fragment                                         *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : // VisualStudio defines setjmp as _setjmp
      10             : #if defined(_MSC_VER) && defined(setjmp) && \
      11             :                          !defined(setjmp_undefined_for_msvc)
      12             : #  pragma push_macro("setjmp")
      13             : #  undef setjmp
      14             : #  define setjmp_undefined_for_msvc
      15             : #endif
      16             : 
      17             : // Enum values for Intrinsics.h
      18             : #ifdef GET_INTRINSIC_ENUM_VALUES
      19             :     AMDGPU_abs,                                // llvm.AMDGPU.abs
      20             :     AMDGPU_arl,                                // llvm.AMDGPU.arl
      21             :     AMDGPU_barrier_global,                     // llvm.AMDGPU.barrier.global
      22             :     AMDGPU_barrier_local,                      // llvm.AMDGPU.barrier.local
      23             :     AMDGPU_bfe_i32,                            // llvm.AMDGPU.bfe.i32
      24             :     AMDGPU_bfe_u32,                            // llvm.AMDGPU.bfe.u32
      25             :     AMDGPU_bfi,                                // llvm.AMDGPU.bfi
      26             :     AMDGPU_bfm,                                // llvm.AMDGPU.bfm
      27             :     AMDGPU_brev,                               // llvm.AMDGPU.brev
      28             :     AMDGPU_clamp,                              // llvm.AMDGPU.clamp
      29             :     AMDGPU_cndlt,                              // llvm.AMDGPU.cndlt
      30             :     AMDGPU_cube,                               // llvm.AMDGPU.cube
      31             :     AMDGPU_cvt_f32_ubyte0,                     // llvm.AMDGPU.cvt.f32.ubyte0
      32             :     AMDGPU_cvt_f32_ubyte1,                     // llvm.AMDGPU.cvt.f32.ubyte1
      33             :     AMDGPU_cvt_f32_ubyte2,                     // llvm.AMDGPU.cvt.f32.ubyte2
      34             :     AMDGPU_cvt_f32_ubyte3,                     // llvm.AMDGPU.cvt.f32.ubyte3
      35             :     AMDGPU_ddx,                                // llvm.AMDGPU.ddx
      36             :     AMDGPU_ddy,                                // llvm.AMDGPU.ddy
      37             :     AMDGPU_div,                                // llvm.AMDGPU.div
      38             :     AMDGPU_dp4,                                // llvm.AMDGPU.dp4
      39             :     AMDGPU_flbit_i32,                          // llvm.AMDGPU.flbit.i32
      40             :     AMDGPU_fract,                              // llvm.AMDGPU.fract
      41             :     AMDGPU_imad24,                             // llvm.AMDGPU.imad24
      42             :     AMDGPU_imax,                               // llvm.AMDGPU.imax
      43             :     AMDGPU_imin,                               // llvm.AMDGPU.imin
      44             :     AMDGPU_imul24,                             // llvm.AMDGPU.imul24
      45             :     AMDGPU_kill,                               // llvm.AMDGPU.kill
      46             :     AMDGPU_kilp,                               // llvm.AMDGPU.kilp
      47             :     AMDGPU_legacy_rsq,                         // llvm.AMDGPU.legacy.rsq
      48             :     AMDGPU_lrp,                                // llvm.AMDGPU.lrp
      49             :     AMDGPU_mul,                                // llvm.AMDGPU.mul
      50             :     AMDGPU_mullit,                             // llvm.AMDGPU.mullit
      51             :     AMDGPU_pow,                                // llvm.AMDGPU.pow
      52             :     AMDGPU_seq,                                // llvm.AMDGPU.seq
      53             :     AMDGPU_sge,                                // llvm.AMDGPU.sge
      54             :     AMDGPU_sgt,                                // llvm.AMDGPU.sgt
      55             :     AMDGPU_sle,                                // llvm.AMDGPU.sle
      56             :     AMDGPU_sne,                                // llvm.AMDGPU.sne
      57             :     AMDGPU_store_output,                       // llvm.AMDGPU.store.output
      58             :     AMDGPU_swizzle,                            // llvm.AMDGPU.swizzle
      59             :     AMDGPU_tex,                                // llvm.AMDGPU.tex
      60             :     AMDGPU_trunc,                              // llvm.AMDGPU.trunc
      61             :     AMDGPU_txb,                                // llvm.AMDGPU.txb
      62             :     AMDGPU_txd,                                // llvm.AMDGPU.txd
      63             :     AMDGPU_txf,                                // llvm.AMDGPU.txf
      64             :     AMDGPU_txl,                                // llvm.AMDGPU.txl
      65             :     AMDGPU_txq,                                // llvm.AMDGPU.txq
      66             :     AMDGPU_umad24,                             // llvm.AMDGPU.umad24
      67             :     AMDGPU_umax,                               // llvm.AMDGPU.umax
      68             :     AMDGPU_umin,                               // llvm.AMDGPU.umin
      69             :     AMDGPU_umul24,                             // llvm.AMDGPU.umul24
      70             :     AMDIL_abs,                                 // llvm.AMDIL.abs
      71             :     AMDIL_clamp,                               // llvm.AMDIL.clamp
      72             :     AMDIL_exp,                                 // llvm.AMDIL.exp
      73             :     AMDIL_fraction,                            // llvm.AMDIL.fraction
      74             :     AMDIL_round_nearest,                       // llvm.AMDIL.round.nearest
      75             :     R600_ddx,                                  // llvm.R600.ddx
      76             :     R600_ddy,                                  // llvm.R600.ddy
      77             :     R600_interp_const,                         // llvm.R600.interp.const
      78             :     R600_interp_input,                         // llvm.R600.interp.input
      79             :     R600_interp_xy,                            // llvm.R600.interp.xy
      80             :     R600_interp_zw,                            // llvm.R600.interp.zw
      81             :     R600_ldptr,                                // llvm.R600.ldptr
      82             :     R600_load_input,                           // llvm.R600.load.input
      83             :     R600_load_texbuf,                          // llvm.R600.load.texbuf
      84             :     R600_store_dummy,                          // llvm.R600.store.dummy
      85             :     R600_store_pixel_depth,                    // llvm.R600.store.pixel.depth
      86             :     R600_store_pixel_stencil,                  // llvm.R600.store.pixel.stencil
      87             :     R600_store_stream_output,                  // llvm.R600.store.stream.output
      88             :     R600_store_swizzle,                        // llvm.R600.store.swizzle
      89             :     R600_tex,                                  // llvm.R600.tex
      90             :     R600_texc,                                 // llvm.R600.texc
      91             :     R600_txb,                                  // llvm.R600.txb
      92             :     R600_txbc,                                 // llvm.R600.txbc
      93             :     R600_txf,                                  // llvm.R600.txf
      94             :     R600_txl,                                  // llvm.R600.txl
      95             :     R600_txlc,                                 // llvm.R600.txlc
      96             :     R600_txq,                                  // llvm.R600.txq
      97             :     SI_break,                                  // llvm.SI.break
      98             :     SI_buffer_load_dword,                      // llvm.SI.buffer.load.dword
      99             :     SI_else,                                   // llvm.SI.else
     100             :     SI_else_break,                             // llvm.SI.else.break
     101             :     SI_end_cf,                                 // llvm.SI.end.cf
     102             :     SI_export,                                 // llvm.SI.export
     103             :     SI_fs_constant,                            // llvm.SI.fs.constant
     104             :     SI_fs_interp,                              // llvm.SI.fs.interp
     105             :     SI_gather4,                                // llvm.SI.gather4
     106             :     SI_gather4_b,                              // llvm.SI.gather4.b
     107             :     SI_gather4_b_cl,                           // llvm.SI.gather4.b.cl
     108             :     SI_gather4_b_cl_o,                         // llvm.SI.gather4.b.cl.o
     109             :     SI_gather4_b_o,                            // llvm.SI.gather4.b.o
     110             :     SI_gather4_c,                              // llvm.SI.gather4.c
     111             :     SI_gather4_c_b,                            // llvm.SI.gather4.c.b
     112             :     SI_gather4_c_b_cl,                         // llvm.SI.gather4.c.b.cl
     113             :     SI_gather4_c_b_cl_o,                       // llvm.SI.gather4.c.b.cl.o
     114             :     SI_gather4_c_b_o,                          // llvm.SI.gather4.c.b.o
     115             :     SI_gather4_c_cl,                           // llvm.SI.gather4.c.cl
     116             :     SI_gather4_c_cl_o,                         // llvm.SI.gather4.c.cl.o
     117             :     SI_gather4_c_l,                            // llvm.SI.gather4.c.l
     118             :     SI_gather4_c_l_o,                          // llvm.SI.gather4.c.l.o
     119             :     SI_gather4_c_lz,                           // llvm.SI.gather4.c.lz
     120             :     SI_gather4_c_lz_o,                         // llvm.SI.gather4.c.lz.o
     121             :     SI_gather4_c_o,                            // llvm.SI.gather4.c.o
     122             :     SI_gather4_cl,                             // llvm.SI.gather4.cl
     123             :     SI_gather4_cl_o,                           // llvm.SI.gather4.cl.o
     124             :     SI_gather4_l,                              // llvm.SI.gather4.l
     125             :     SI_gather4_l_o,                            // llvm.SI.gather4.l.o
     126             :     SI_gather4_lz,                             // llvm.SI.gather4.lz
     127             :     SI_gather4_lz_o,                           // llvm.SI.gather4.lz.o
     128             :     SI_gather4_o,                              // llvm.SI.gather4.o
     129             :     SI_getlod,                                 // llvm.SI.getlod
     130             :     SI_getresinfo,                             // llvm.SI.getresinfo
     131             :     SI_if,                                     // llvm.SI.if
     132             :     SI_if_break,                               // llvm.SI.if.break
     133             :     SI_image_load,                             // llvm.SI.image.load
     134             :     SI_image_load_mip,                         // llvm.SI.image.load.mip
     135             :     SI_image_sample,                           // llvm.SI.image.sample
     136             :     SI_image_sample_b,                         // llvm.SI.image.sample.b
     137             :     SI_image_sample_b_cl,                      // llvm.SI.image.sample.b.cl
     138             :     SI_image_sample_b_cl_o,                    // llvm.SI.image.sample.b.cl.o
     139             :     SI_image_sample_b_o,                       // llvm.SI.image.sample.b.o
     140             :     SI_image_sample_c,                         // llvm.SI.image.sample.c
     141             :     SI_image_sample_c_b,                       // llvm.SI.image.sample.c.b
     142             :     SI_image_sample_c_b_cl,                    // llvm.SI.image.sample.c.b.cl
     143             :     SI_image_sample_c_b_cl_o,                  // llvm.SI.image.sample.c.b.cl.o
     144             :     SI_image_sample_c_b_o,                     // llvm.SI.image.sample.c.b.o
     145             :     SI_image_sample_c_cd,                      // llvm.SI.image.sample.c.cd
     146             :     SI_image_sample_c_cd_cl,                   // llvm.SI.image.sample.c.cd.cl
     147             :     SI_image_sample_c_cd_cl_o,                 // llvm.SI.image.sample.c.cd.cl.o
     148             :     SI_image_sample_c_cd_o,                    // llvm.SI.image.sample.c.cd.o
     149             :     SI_image_sample_c_cl,                      // llvm.SI.image.sample.c.cl
     150             :     SI_image_sample_c_cl_o,                    // llvm.SI.image.sample.c.cl.o
     151             :     SI_image_sample_c_d,                       // llvm.SI.image.sample.c.d
     152             :     SI_image_sample_c_d_cl,                    // llvm.SI.image.sample.c.d.cl
     153             :     SI_image_sample_c_d_cl_o,                  // llvm.SI.image.sample.c.d.cl.o
     154             :     SI_image_sample_c_d_o,                     // llvm.SI.image.sample.c.d.o
     155             :     SI_image_sample_c_l,                       // llvm.SI.image.sample.c.l
     156             :     SI_image_sample_c_l_o,                     // llvm.SI.image.sample.c.l.o
     157             :     SI_image_sample_c_lz,                      // llvm.SI.image.sample.c.lz
     158             :     SI_image_sample_c_lz_o,                    // llvm.SI.image.sample.c.lz.o
     159             :     SI_image_sample_c_o,                       // llvm.SI.image.sample.c.o
     160             :     SI_image_sample_cd,                        // llvm.SI.image.sample.cd
     161             :     SI_image_sample_cd_cl,                     // llvm.SI.image.sample.cd.cl
     162             :     SI_image_sample_cd_cl_o,                   // llvm.SI.image.sample.cd.cl.o
     163             :     SI_image_sample_cd_o,                      // llvm.SI.image.sample.cd.o
     164             :     SI_image_sample_cl,                        // llvm.SI.image.sample.cl
     165             :     SI_image_sample_cl_o,                      // llvm.SI.image.sample.cl.o
     166             :     SI_image_sample_d,                         // llvm.SI.image.sample.d
     167             :     SI_image_sample_d_cl,                      // llvm.SI.image.sample.d.cl
     168             :     SI_image_sample_d_cl_o,                    // llvm.SI.image.sample.d.cl.o
     169             :     SI_image_sample_d_o,                       // llvm.SI.image.sample.d.o
     170             :     SI_image_sample_l,                         // llvm.SI.image.sample.l
     171             :     SI_image_sample_l_o,                       // llvm.SI.image.sample.l.o
     172             :     SI_image_sample_lz,                        // llvm.SI.image.sample.lz
     173             :     SI_image_sample_lz_o,                      // llvm.SI.image.sample.lz.o
     174             :     SI_image_sample_o,                         // llvm.SI.image.sample.o
     175             :     SI_imageload,                              // llvm.SI.imageload
     176             :     SI_load_const,                             // llvm.SI.load.const
     177             :     SI_loop,                                   // llvm.SI.loop
     178             :     SI_packf16,                                // llvm.SI.packf16
     179             :     SI_resinfo,                                // llvm.SI.resinfo
     180             :     SI_sample,                                 // llvm.SI.sample
     181             :     SI_sampleb,                                // llvm.SI.sampleb
     182             :     SI_sampled,                                // llvm.SI.sampled
     183             :     SI_samplel,                                // llvm.SI.samplel
     184             :     SI_sendmsg,                                // llvm.SI.sendmsg
     185             :     SI_tbuffer_store,                          // llvm.SI.tbuffer.store
     186             :     SI_tid,                                    // llvm.SI.tid
     187             :     SI_vs_load_input,                          // llvm.SI.vs.load.input
     188             :     TGSI_lit_z                                 // llvm.TGSI.lit.z
     189             : #endif
     190             : 
     191             : // Intrinsic ID to name table
     192             : #ifdef GET_INTRINSIC_NAME_TABLE
     193             :   // Note that entry #0 is the invalid intrinsic!
     194             :   "llvm.AMDGPU.abs",
     195             :   "llvm.AMDGPU.arl",
     196             :   "llvm.AMDGPU.barrier.global",
     197             :   "llvm.AMDGPU.barrier.local",
     198             :   "llvm.AMDGPU.bfe.i32",
     199             :   "llvm.AMDGPU.bfe.u32",
     200             :   "llvm.AMDGPU.bfi",
     201             :   "llvm.AMDGPU.bfm",
     202             :   "llvm.AMDGPU.brev",
     203             :   "llvm.AMDGPU.clamp",
     204             :   "llvm.AMDGPU.cndlt",
     205             :   "llvm.AMDGPU.cube",
     206             :   "llvm.AMDGPU.cvt.f32.ubyte0",
     207             :   "llvm.AMDGPU.cvt.f32.ubyte1",
     208             :   "llvm.AMDGPU.cvt.f32.ubyte2",
     209             :   "llvm.AMDGPU.cvt.f32.ubyte3",
     210             :   "llvm.AMDGPU.ddx",
     211             :   "llvm.AMDGPU.ddy",
     212             :   "llvm.AMDGPU.div",
     213             :   "llvm.AMDGPU.dp4",
     214             :   "llvm.AMDGPU.flbit.i32",
     215             :   "llvm.AMDGPU.fract",
     216             :   "llvm.AMDGPU.imad24",
     217             :   "llvm.AMDGPU.imax",
     218             :   "llvm.AMDGPU.imin",
     219             :   "llvm.AMDGPU.imul24",
     220             :   "llvm.AMDGPU.kill",
     221             :   "llvm.AMDGPU.kilp",
     222             :   "llvm.AMDGPU.legacy.rsq",
     223             :   "llvm.AMDGPU.lrp",
     224             :   "llvm.AMDGPU.mul",
     225             :   "llvm.AMDGPU.mullit",
     226             :   "llvm.AMDGPU.pow",
     227             :   "llvm.AMDGPU.seq",
     228             :   "llvm.AMDGPU.sge",
     229             :   "llvm.AMDGPU.sgt",
     230             :   "llvm.AMDGPU.sle",
     231             :   "llvm.AMDGPU.sne",
     232             :   "llvm.AMDGPU.store.output",
     233             :   "llvm.AMDGPU.swizzle",
     234             :   "llvm.AMDGPU.tex",
     235             :   "llvm.AMDGPU.trunc",
     236             :   "llvm.AMDGPU.txb",
     237             :   "llvm.AMDGPU.txd",
     238             :   "llvm.AMDGPU.txf",
     239             :   "llvm.AMDGPU.txl",
     240             :   "llvm.AMDGPU.txq",
     241             :   "llvm.AMDGPU.umad24",
     242             :   "llvm.AMDGPU.umax",
     243             :   "llvm.AMDGPU.umin",
     244             :   "llvm.AMDGPU.umul24",
     245             :   "llvm.AMDIL.abs",
     246             :   "llvm.AMDIL.clamp",
     247             :   "llvm.AMDIL.exp",
     248             :   "llvm.AMDIL.fraction",
     249             :   "llvm.AMDIL.round.nearest",
     250             :   "llvm.R600.ddx",
     251             :   "llvm.R600.ddy",
     252             :   "llvm.R600.interp.const",
     253             :   "llvm.R600.interp.input",
     254             :   "llvm.R600.interp.xy",
     255             :   "llvm.R600.interp.zw",
     256             :   "llvm.R600.ldptr",
     257             :   "llvm.R600.load.input",
     258             :   "llvm.R600.load.texbuf",
     259             :   "llvm.R600.store.dummy",
     260             :   "llvm.R600.store.pixel.depth",
     261             :   "llvm.R600.store.pixel.stencil",
     262             :   "llvm.R600.store.stream.output",
     263             :   "llvm.R600.store.swizzle",
     264             :   "llvm.R600.tex",
     265             :   "llvm.R600.texc",
     266             :   "llvm.R600.txb",
     267             :   "llvm.R600.txbc",
     268             :   "llvm.R600.txf",
     269             :   "llvm.R600.txl",
     270             :   "llvm.R600.txlc",
     271             :   "llvm.R600.txq",
     272             :   "llvm.SI.break",
     273             :   "llvm.SI.buffer.load.dword",
     274             :   "llvm.SI.else",
     275             :   "llvm.SI.else.break",
     276             :   "llvm.SI.end.cf",
     277             :   "llvm.SI.export",
     278             :   "llvm.SI.fs.constant",
     279             :   "llvm.SI.fs.interp",
     280             :   "llvm.SI.gather4",
     281             :   "llvm.SI.gather4.b",
     282             :   "llvm.SI.gather4.b.cl",
     283             :   "llvm.SI.gather4.b.cl.o",
     284             :   "llvm.SI.gather4.b.o",
     285             :   "llvm.SI.gather4.c",
     286             :   "llvm.SI.gather4.c.b",
     287             :   "llvm.SI.gather4.c.b.cl",
     288             :   "llvm.SI.gather4.c.b.cl.o",
     289             :   "llvm.SI.gather4.c.b.o",
     290             :   "llvm.SI.gather4.c.cl",
     291             :   "llvm.SI.gather4.c.cl.o",
     292             :   "llvm.SI.gather4.c.l",
     293             :   "llvm.SI.gather4.c.l.o",
     294             :   "llvm.SI.gather4.c.lz",
     295             :   "llvm.SI.gather4.c.lz.o",
     296             :   "llvm.SI.gather4.c.o",
     297             :   "llvm.SI.gather4.cl",
     298             :   "llvm.SI.gather4.cl.o",
     299             :   "llvm.SI.gather4.l",
     300             :   "llvm.SI.gather4.l.o",
     301             :   "llvm.SI.gather4.lz",
     302             :   "llvm.SI.gather4.lz.o",
     303             :   "llvm.SI.gather4.o",
     304             :   "llvm.SI.getlod",
     305             :   "llvm.SI.getresinfo",
     306             :   "llvm.SI.if",
     307             :   "llvm.SI.if.break",
     308             :   "llvm.SI.image.load",
     309             :   "llvm.SI.image.load.mip",
     310             :   "llvm.SI.image.sample",
     311             :   "llvm.SI.image.sample.b",
     312             :   "llvm.SI.image.sample.b.cl",
     313             :   "llvm.SI.image.sample.b.cl.o",
     314             :   "llvm.SI.image.sample.b.o",
     315             :   "llvm.SI.image.sample.c",
     316             :   "llvm.SI.image.sample.c.b",
     317             :   "llvm.SI.image.sample.c.b.cl",
     318             :   "llvm.SI.image.sample.c.b.cl.o",
     319             :   "llvm.SI.image.sample.c.b.o",
     320             :   "llvm.SI.image.sample.c.cd",
     321             :   "llvm.SI.image.sample.c.cd.cl",
     322             :   "llvm.SI.image.sample.c.cd.cl.o",
     323             :   "llvm.SI.image.sample.c.cd.o",
     324             :   "llvm.SI.image.sample.c.cl",
     325             :   "llvm.SI.image.sample.c.cl.o",
     326             :   "llvm.SI.image.sample.c.d",
     327             :   "llvm.SI.image.sample.c.d.cl",
     328             :   "llvm.SI.image.sample.c.d.cl.o",
     329             :   "llvm.SI.image.sample.c.d.o",
     330             :   "llvm.SI.image.sample.c.l",
     331             :   "llvm.SI.image.sample.c.l.o",
     332             :   "llvm.SI.image.sample.c.lz",
     333             :   "llvm.SI.image.sample.c.lz.o",
     334             :   "llvm.SI.image.sample.c.o",
     335             :   "llvm.SI.image.sample.cd",
     336             :   "llvm.SI.image.sample.cd.cl",
     337             :   "llvm.SI.image.sample.cd.cl.o",
     338             :   "llvm.SI.image.sample.cd.o",
     339             :   "llvm.SI.image.sample.cl",
     340             :   "llvm.SI.image.sample.cl.o",
     341             :   "llvm.SI.image.sample.d",
     342             :   "llvm.SI.image.sample.d.cl",
     343             :   "llvm.SI.image.sample.d.cl.o",
     344             :   "llvm.SI.image.sample.d.o",
     345             :   "llvm.SI.image.sample.l",
     346             :   "llvm.SI.image.sample.l.o",
     347             :   "llvm.SI.image.sample.lz",
     348             :   "llvm.SI.image.sample.lz.o",
     349             :   "llvm.SI.image.sample.o",
     350             :   "llvm.SI.imageload",
     351             :   "llvm.SI.load.const",
     352             :   "llvm.SI.loop",
     353             :   "llvm.SI.packf16",
     354             :   "llvm.SI.resinfo",
     355             :   "llvm.SI.sample",
     356             :   "llvm.SI.sampleb",
     357             :   "llvm.SI.sampled",
     358             :   "llvm.SI.samplel",
     359             :   "llvm.SI.sendmsg",
     360             :   "llvm.SI.tbuffer.store",
     361             :   "llvm.SI.tid",
     362             :   "llvm.SI.vs.load.input",
     363             :   "llvm.TGSI.lit.z",
     364             : #endif
     365             : 
     366             : // Intrinsic ID to overload bitset
     367             : #ifdef GET_INTRINSIC_OVERLOAD_TABLE
     368             : static const uint8_t OTable[] = {
     369             :   0,
     370             :   0 | (1<<2),
     371             :   0 | (1<<6),
     372             :   0,
     373             :   0,
     374             :   0,
     375             :   0 | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     376             :   0 | (1<<0),
     377             :   0,
     378             :   0,
     379             :   0 | (1<<0) | (1<<7),
     380             :   0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     381             :   0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     382             :   0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     383             :   0 | (1<<0) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     384             :   0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     385             :   0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     386             :   0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     387             :   0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7),
     388             :   0 | (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6),
     389             :   0 | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<7),
     390             :   0 | (1<<1)
     391             : };
     392             : 
     393           0 : return (OTable[id/8] & (1 << (id%8))) != 0;
     394             : #endif
     395             : 
     396             : // Function name -> enum value recognizer code.
     397             : #ifdef GET_FUNCTION_RECOGNIZER
     398        4710 :   StringRef NameR(Name+6, Len-6);   // Skip over 'llvm.'
     399        4710 :   switch (Name[5]) {                  // Dispatch on first letter.
     400             :   default: break;
     401             :   case 'A':
     402         807 :     if (NameR.startswith("MDIL.round.nearest.")) return AMDGPUIntrinsic::AMDIL_round_nearest;
     403         804 :     if (NameR.startswith("MDIL.fraction.")) return AMDGPUIntrinsic::AMDIL_fraction;
     404         798 :     if (NameR.startswith("MDIL.exp.")) return AMDGPUIntrinsic::AMDIL_exp;
     405         790 :     if (NameR.startswith("MDIL.clamp.")) return AMDGPUIntrinsic::AMDIL_clamp;
     406         735 :     if (NameR.startswith("MDIL.abs.")) return AMDGPUIntrinsic::AMDIL_abs;
     407         732 :     if (NameR.startswith("MDGPU.fract.")) return AMDGPUIntrinsic::AMDGPU_fract;
     408         711 :     if (NameR.startswith("MDGPU.clamp.")) return AMDGPUIntrinsic::AMDGPU_clamp;
     409         699 :     switch (NameR.size()) {
     410             :     default: break;
     411             :     case 9:      // 22 strings to match.
     412         146 :       if (memcmp(NameR.data()+0, "MDGPU.", 6))
     413             :         break;
     414         292 :       switch (NameR[6]) {
     415             :       default: break;
     416             :       case 'a':  // 2 strings to match.
     417          12 :         switch (NameR[7]) {
     418             :         default: break;
     419             :         case 'b':        // 1 string to match.
     420          12 :           if (NameR[8] != 's')
     421             :             break;
     422             :           return AMDGPUIntrinsic::AMDGPU_abs;    // "MDGPU.abs"
     423             :         case 'r':        // 1 string to match.
     424           0 :           if (NameR[8] != 'l')
     425             :             break;
     426             :           return AMDGPUIntrinsic::AMDGPU_arl;    // "MDGPU.arl"
     427             :         }
     428             :         break;
     429             :       case 'b':  // 2 strings to match.
     430          48 :         if (NameR[7] != 'f')
     431             :           break;
     432          48 :         switch (NameR[8]) {
     433             :         default: break;
     434             :         case 'i':        // 1 string to match.
     435             :           return AMDGPUIntrinsic::AMDGPU_bfi;    // "MDGPU.bfi"
     436             :         case 'm':        // 1 string to match.
     437          12 :           return AMDGPUIntrinsic::AMDGPU_bfm;    // "MDGPU.bfm"
     438             :         }
     439             :         break;
     440             :       case 'd':  // 4 strings to match.
     441          70 :         switch (NameR[7]) {
     442             :         default: break;
     443             :         case 'd':        // 2 strings to match.
     444           0 :           switch (NameR[8]) {
     445             :           default: break;
     446             :           case 'x':      // 1 string to match.
     447             :             return AMDGPUIntrinsic::AMDGPU_ddx;  // "MDGPU.ddx"
     448             :           case 'y':      // 1 string to match.
     449           0 :             return AMDGPUIntrinsic::AMDGPU_ddy;  // "MDGPU.ddy"
     450             :           }
     451             :           break;
     452             :         case 'i':        // 1 string to match.
     453           0 :           if (NameR[8] != 'v')
     454             :             break;
     455             :           return AMDGPUIntrinsic::AMDGPU_div;    // "MDGPU.div"
     456             :         case 'p':        // 1 string to match.
     457          70 :           if (NameR[8] != '4')
     458             :             break;
     459             :           return AMDGPUIntrinsic::AMDGPU_dp4;    // "MDGPU.dp4"
     460             :         }
     461             :         break;
     462             :       case 'l':  // 1 string to match.
     463          80 :         if (memcmp(NameR.data()+7, "rp", 2))
     464             :           break;
     465             :         return AMDGPUIntrinsic::AMDGPU_lrp;      // "MDGPU.lrp"
     466             :       case 'm':  // 1 string to match.
     467           1 :         if (memcmp(NameR.data()+7, "ul", 2))
     468             :           break;
     469             :         return AMDGPUIntrinsic::AMDGPU_mul;      // "MDGPU.mul"
     470             :       case 'p':  // 1 string to match.
     471           0 :         if (memcmp(NameR.data()+7, "ow", 2))
     472             :           break;
     473             :         return AMDGPUIntrinsic::AMDGPU_pow;      // "MDGPU.pow"
     474             :       case 's':  // 5 strings to match.
     475           0 :         switch (NameR[7]) {
     476             :         default: break;
     477             :         case 'e':        // 1 string to match.
     478           0 :           if (NameR[8] != 'q')
     479             :             break;
     480             :           return AMDGPUIntrinsic::AMDGPU_seq;    // "MDGPU.seq"
     481             :         case 'g':        // 2 strings to match.
     482           0 :           switch (NameR[8]) {
     483             :           default: break;
     484             :           case 'e':      // 1 string to match.
     485             :             return AMDGPUIntrinsic::AMDGPU_sge;  // "MDGPU.sge"
     486             :           case 't':      // 1 string to match.
     487           0 :             return AMDGPUIntrinsic::AMDGPU_sgt;  // "MDGPU.sgt"
     488             :           }
     489             :           break;
     490             :         case 'l':        // 1 string to match.
     491           0 :           if (NameR[8] != 'e')
     492             :             break;
     493             :           return AMDGPUIntrinsic::AMDGPU_sle;    // "MDGPU.sle"
     494             :         case 'n':        // 1 string to match.
     495           0 :           if (NameR[8] != 'e')
     496             :             break;
     497             :           return AMDGPUIntrinsic::AMDGPU_sne;    // "MDGPU.sne"
     498             :         }
     499             :         break;
     500             :       case 't':  // 6 strings to match.
     501           0 :         switch (NameR[7]) {
     502             :         default: break;
     503             :         case 'e':        // 1 string to match.
     504           0 :           if (NameR[8] != 'x')
     505             :             break;
     506             :           return AMDGPUIntrinsic::AMDGPU_tex;    // "MDGPU.tex"
     507             :         case 'x':        // 5 strings to match.
     508           0 :           switch (NameR[8]) {
     509             :           default: break;
     510             :           case 'b':      // 1 string to match.
     511             :             return AMDGPUIntrinsic::AMDGPU_txb;  // "MDGPU.txb"
     512             :           case 'd':      // 1 string to match.
     513           0 :             return AMDGPUIntrinsic::AMDGPU_txd;  // "MDGPU.txd"
     514             :           case 'f':      // 1 string to match.
     515           0 :             return AMDGPUIntrinsic::AMDGPU_txf;  // "MDGPU.txf"
     516             :           case 'l':      // 1 string to match.
     517           0 :             return AMDGPUIntrinsic::AMDGPU_txl;  // "MDGPU.txl"
     518             :           case 'q':      // 1 string to match.
     519           0 :             return AMDGPUIntrinsic::AMDGPU_txq;  // "MDGPU.txq"
     520             :           }
     521             :           break;
     522             :         }
     523             :         break;
     524             :       }
     525             :       break;
     526             :     case 10:     // 8 strings to match.
     527          40 :       if (memcmp(NameR.data()+0, "MDGPU.", 6))
     528             :         break;
     529          80 :       switch (NameR[6]) {
     530             :       default: break;
     531             :       case 'b':  // 1 string to match.
     532           4 :         if (memcmp(NameR.data()+7, "rev", 3))
     533             :           break;
     534             :         return AMDGPUIntrinsic::AMDGPU_brev;     // "MDGPU.brev"
     535             :       case 'c':  // 1 string to match.
     536           4 :         if (memcmp(NameR.data()+7, "ube", 3))
     537             :           break;
     538             :         return AMDGPUIntrinsic::AMDGPU_cube;     // "MDGPU.cube"
     539             :       case 'i':  // 2 strings to match.
     540          20 :         if (NameR[7] != 'm')
     541             :           break;
     542          20 :         switch (NameR[8]) {
     543             :         default: break;
     544             :         case 'a':        // 1 string to match.
     545          12 :           if (NameR[9] != 'x')
     546             :             break;
     547             :           return AMDGPUIntrinsic::AMDGPU_imax;   // "MDGPU.imax"
     548             :         case 'i':        // 1 string to match.
     549           8 :           if (NameR[9] != 'n')
     550             :             break;
     551             :           return AMDGPUIntrinsic::AMDGPU_imin;   // "MDGPU.imin"
     552             :         }
     553             :         break;
     554             :       case 'k':  // 2 strings to match.
     555          10 :         if (memcmp(NameR.data()+7, "il", 2))
     556             :           break;
     557          20 :         switch (NameR[9]) {
     558             :         default: break;
     559             :         case 'l':        // 1 string to match.
     560             :           return AMDGPUIntrinsic::AMDGPU_kill;   // "MDGPU.kill"
     561             :         case 'p':        // 1 string to match.
     562           4 :           return AMDGPUIntrinsic::AMDGPU_kilp;   // "MDGPU.kilp"
     563             :         }
     564             :         break;
     565             :       case 'u':  // 2 strings to match.
     566          24 :         if (NameR[7] != 'm')
     567             :           break;
     568          24 :         switch (NameR[8]) {
     569             :         default: break;
     570             :         case 'a':        // 1 string to match.
     571          12 :           if (NameR[9] != 'x')
     572             :             break;
     573             :           return AMDGPUIntrinsic::AMDGPU_umax;   // "MDGPU.umax"
     574             :         case 'i':        // 1 string to match.
     575          12 :           if (NameR[9] != 'n')
     576             :             break;
     577             :           return AMDGPUIntrinsic::AMDGPU_umin;   // "MDGPU.umin"
     578             :         }
     579             :         break;
     580             :       }
     581             :       break;
     582             :     case 11:     // 2 strings to match.
     583           7 :       if (memcmp(NameR.data()+0, "MDGPU.", 6))
     584             :         break;
     585          14 :       switch (NameR[6]) {
     586             :       default: break;
     587             :       case 'c':  // 1 string to match.
     588           4 :         if (memcmp(NameR.data()+7, "ndlt", 4))
     589             :           break;
     590             :         return AMDGPUIntrinsic::AMDGPU_cndlt;    // "MDGPU.cndlt"
     591             :       case 't':  // 1 string to match.
     592           3 :         if (memcmp(NameR.data()+7, "runc", 4))
     593             :           break;
     594             :         return AMDGPUIntrinsic::AMDGPU_trunc;    // "MDGPU.trunc"
     595             :       }
     596             :       break;
     597             :     case 12:     // 5 strings to match.
     598          24 :       if (memcmp(NameR.data()+0, "MDGPU.", 6))
     599             :         break;
     600          48 :       switch (NameR[6]) {
     601             :       default: break;
     602             :       case 'i':  // 2 strings to match.
     603          28 :         if (NameR[7] != 'm')
     604             :           break;
     605          28 :         switch (NameR[8]) {
     606             :         default: break;
     607             :         case 'a':        // 1 string to match.
     608           6 :           if (memcmp(NameR.data()+9, "d24", 3))
     609             :             break;
     610             :           return AMDGPUIntrinsic::AMDGPU_imad24;         // "MDGPU.imad24"
     611             :         case 'u':        // 1 string to match.
     612           8 :           if (memcmp(NameR.data()+9, "l24", 3))
     613             :             break;
     614             :           return AMDGPUIntrinsic::AMDGPU_imul24;         // "MDGPU.imul24"
     615             :         }
     616             :         break;
     617             :       case 'm':  // 1 string to match.
     618           0 :         if (memcmp(NameR.data()+7, "ullit", 5))
     619             :           break;
     620             :         return AMDGPUIntrinsic::AMDGPU_mullit;   // "MDGPU.mullit"
     621             :       case 'u':  // 2 strings to match.
     622          20 :         if (NameR[7] != 'm')
     623             :           break;
     624          20 :         switch (NameR[8]) {
     625             :         default: break;
     626             :         case 'a':        // 1 string to match.
     627           6 :           if (memcmp(NameR.data()+9, "d24", 3))
     628             :             break;
     629             :           return AMDGPUIntrinsic::AMDGPU_umad24;         // "MDGPU.umad24"
     630             :         case 'u':        // 1 string to match.
     631           4 :           if (memcmp(NameR.data()+9, "l24", 3))
     632             :             break;
     633             :           return AMDGPUIntrinsic::AMDGPU_umul24;         // "MDGPU.umul24"
     634             :         }
     635             :         break;
     636             :       }
     637             :       break;
     638             :     case 13:     // 3 strings to match.
     639         329 :       if (memcmp(NameR.data()+0, "MDGPU.", 6))
     640             :         break;
     641         658 :       switch (NameR[6]) {
     642             :       default: break;
     643             :       case 'b':  // 2 strings to match.
     644         280 :         if (memcmp(NameR.data()+7, "fe.", 3))
     645             :           break;
     646         560 :         switch (NameR[10]) {
     647             :         default: break;
     648             :         case 'i':        // 1 string to match.
     649         139 :           if (memcmp(NameR.data()+11, "32", 2))
     650             :             break;
     651             :           return AMDGPUIntrinsic::AMDGPU_bfe_i32;        // "MDGPU.bfe.i32"
     652             :         case 'u':        // 1 string to match.
     653         141 :           if (memcmp(NameR.data()+11, "32", 2))
     654             :             break;
     655             :           return AMDGPUIntrinsic::AMDGPU_bfe_u32;        // "MDGPU.bfe.u32"
     656             :         }
     657             :         break;
     658             :       case 's':  // 1 string to match.
     659           0 :         if (memcmp(NameR.data()+7, "wizzle", 6))
     660             :           break;
     661             :         return AMDGPUIntrinsic::AMDGPU_swizzle;  // "MDGPU.swizzle"
     662             :       }
     663             :       break;
     664             :     case 15:     // 1 string to match.
     665          52 :       if (memcmp(NameR.data()+0, "MDGPU.flbit.i32", 15))
     666             :         break;
     667             :       return AMDGPUIntrinsic::AMDGPU_flbit_i32;  // "MDGPU.flbit.i32"
     668             :     case 16:     // 1 string to match.
     669           2 :       if (memcmp(NameR.data()+0, "MDGPU.legacy.rsq", 16))
     670             :         break;
     671             :       return AMDGPUIntrinsic::AMDGPU_legacy_rsq;         // "MDGPU.legacy.rsq"
     672             :     case 18:     // 1 string to match.
     673          13 :       if (memcmp(NameR.data()+0, "MDGPU.store.output", 18))
     674             :         break;
     675             :       return AMDGPUIntrinsic::AMDGPU_store_output;       // "MDGPU.store.output"
     676             :     case 19:     // 1 string to match.
     677          65 :       if (memcmp(NameR.data()+0, "MDGPU.barrier.local", 19))
     678             :         break;
     679             :       return AMDGPUIntrinsic::AMDGPU_barrier_local;      // "MDGPU.barrier.local"
     680             :     case 20:     // 5 strings to match.
     681          16 :       if (memcmp(NameR.data()+0, "MDGPU.", 6))
     682             :         break;
     683          32 :       switch (NameR[6]) {
     684             :       default: break;
     685             :       case 'b':  // 1 string to match.
     686           4 :         if (memcmp(NameR.data()+7, "arrier.global", 13))
     687             :           break;
     688             :         return AMDGPUIntrinsic::AMDGPU_barrier_global;   // "MDGPU.barrier.global"
     689             :       case 'c':  // 4 strings to match.
     690           8 :         if (memcmp(NameR.data()+7, "vt.f32.ubyte", 12))
     691             :           break;
     692          16 :         switch (NameR[19]) {
     693             :         default: break;
     694             :         case '0':        // 1 string to match.
     695             :           return AMDGPUIntrinsic::AMDGPU_cvt_f32_ubyte0;         // "MDGPU.cvt.f32.ubyte0"
     696             :         case '1':        // 1 string to match.
     697           2 :           return AMDGPUIntrinsic::AMDGPU_cvt_f32_ubyte1;         // "MDGPU.cvt.f32.ubyte1"
     698             :         case '2':        // 1 string to match.
     699           2 :           return AMDGPUIntrinsic::AMDGPU_cvt_f32_ubyte2;         // "MDGPU.cvt.f32.ubyte2"
     700             :         case '3':        // 1 string to match.
     701           2 :           return AMDGPUIntrinsic::AMDGPU_cvt_f32_ubyte3;         // "MDGPU.cvt.f32.ubyte3"
     702             :         }
     703             :         break;
     704             :       }
     705             :       break;
     706             :     }
     707             :     break;  // end of 'A' case.
     708             :   case 'R':
     709         342 :     switch (NameR.size()) {
     710             :     default: break;
     711             :     case 7:      // 7 strings to match.
     712         269 :       if (memcmp(NameR.data()+0, "600.", 4))
     713             :         break;
     714         538 :       switch (NameR[4]) {
     715             :       default: break;
     716             :       case 'd':  // 2 strings to match.
     717           0 :         if (NameR[5] != 'd')
     718             :           break;
     719           0 :         switch (NameR[6]) {
     720             :         default: break;
     721             :         case 'x':        // 1 string to match.
     722             :           return AMDGPUIntrinsic::R600_ddx;      // "600.ddx"
     723             :         case 'y':        // 1 string to match.
     724           0 :           return AMDGPUIntrinsic::R600_ddy;      // "600.ddy"
     725             :         }
     726             :         break;
     727             :       case 't':  // 5 strings to match.
     728         538 :         switch (NameR[5]) {
     729             :         default: break;
     730             :         case 'e':        // 1 string to match.
     731         538 :           if (NameR[6] != 'x')
     732             :             break;
     733             :           return AMDGPUIntrinsic::R600_tex;      // "600.tex"
     734             :         case 'x':        // 4 strings to match.
     735           0 :           switch (NameR[6]) {
     736             :           default: break;
     737             :           case 'b':      // 1 string to match.
     738             :             return AMDGPUIntrinsic::R600_txb;    // "600.txb"
     739             :           case 'f':      // 1 string to match.
     740           0 :             return AMDGPUIntrinsic::R600_txf;    // "600.txf"
     741             :           case 'l':      // 1 string to match.
     742           0 :             return AMDGPUIntrinsic::R600_txl;    // "600.txl"
     743             :           case 'q':      // 1 string to match.
     744           0 :             return AMDGPUIntrinsic::R600_txq;    // "600.txq"
     745             :           }
     746             :           break;
     747             :         }
     748             :         break;
     749             :       }
     750             :       break;
     751             :     case 8:      // 3 strings to match.
     752           7 :       if (memcmp(NameR.data()+0, "600.t", 5))
     753             :         break;
     754          14 :       switch (NameR[5]) {
     755             :       default: break;
     756             :       case 'e':  // 1 string to match.
     757           7 :         if (memcmp(NameR.data()+6, "xc", 2))
     758             :           break;
     759             :         return AMDGPUIntrinsic::R600_texc;       // "600.texc"
     760             :       case 'x':  // 2 strings to match.
     761           0 :         switch (NameR[6]) {
     762             :         default: break;
     763             :         case 'b':        // 1 string to match.
     764           0 :           if (NameR[7] != 'c')
     765             :             break;
     766             :           return AMDGPUIntrinsic::R600_txbc;     // "600.txbc"
     767             :         case 'l':        // 1 string to match.
     768           0 :           if (NameR[7] != 'c')
     769             :             break;
     770             :           return AMDGPUIntrinsic::R600_txlc;     // "600.txlc"
     771             :         }
     772             :         break;
     773             :       }
     774             :       break;
     775             :     case 9:      // 1 string to match.
     776           0 :       if (memcmp(NameR.data()+0, "600.ldptr", 9))
     777             :         break;
     778             :       return AMDGPUIntrinsic::R600_ldptr;        // "600.ldptr"
     779             :     case 13:     // 2 strings to match.
     780           0 :       if (memcmp(NameR.data()+0, "600.interp.", 11))
     781             :         break;
     782           0 :       switch (NameR[11]) {
     783             :       default: break;
     784             :       case 'x':  // 1 string to match.
     785           0 :         if (NameR[12] != 'y')
     786             :           break;
     787             :         return AMDGPUIntrinsic::R600_interp_xy;  // "600.interp.xy"
     788             :       case 'z':  // 1 string to match.
     789           0 :         if (NameR[12] != 'w')
     790             :           break;
     791             :         return AMDGPUIntrinsic::R600_interp_zw;  // "600.interp.zw"
     792             :       }
     793             :       break;
     794             :     case 14:     // 1 string to match.
     795           0 :       if (memcmp(NameR.data()+0, "600.load.input", 14))
     796             :         break;
     797             :       return AMDGPUIntrinsic::R600_load_input;   // "600.load.input"
     798             :     case 15:     // 2 strings to match.
     799           0 :       if (memcmp(NameR.data()+0, "600.", 4))
     800             :         break;
     801           0 :       switch (NameR[4]) {
     802             :       default: break;
     803             :       case 'l':  // 1 string to match.
     804           0 :         if (memcmp(NameR.data()+5, "oad.texbuf", 10))
     805             :           break;
     806             :         return AMDGPUIntrinsic::R600_load_texbuf;        // "600.load.texbuf"
     807             :       case 's':  // 1 string to match.
     808           0 :         if (memcmp(NameR.data()+5, "tore.dummy", 10))
     809             :           break;
     810             :         return AMDGPUIntrinsic::R600_store_dummy;        // "600.store.dummy"
     811             :       }
     812             :       break;
     813             :     case 16:     // 2 strings to match.
     814           0 :       if (memcmp(NameR.data()+0, "600.interp.", 11))
     815             :         break;
     816           0 :       switch (NameR[11]) {
     817             :       default: break;
     818             :       case 'c':  // 1 string to match.
     819           0 :         if (memcmp(NameR.data()+12, "onst", 4))
     820             :           break;
     821             :         return AMDGPUIntrinsic::R600_interp_const;       // "600.interp.const"
     822             :       case 'i':  // 1 string to match.
     823           0 :         if (memcmp(NameR.data()+12, "nput", 4))
     824             :           break;
     825             :         return AMDGPUIntrinsic::R600_interp_input;       // "600.interp.input"
     826             :       }
     827             :       break;
     828             :     case 17:     // 1 string to match.
     829          63 :       if (memcmp(NameR.data()+0, "600.store.swizzle", 17))
     830             :         break;
     831             :       return AMDGPUIntrinsic::R600_store_swizzle;        // "600.store.swizzle"
     832             :     case 21:     // 1 string to match.
     833           0 :       if (memcmp(NameR.data()+0, "600.store.pixel.depth", 21))
     834             :         break;
     835             :       return AMDGPUIntrinsic::R600_store_pixel_depth;    // "600.store.pixel.depth"
     836             :     case 23:     // 2 strings to match.
     837           3 :       if (memcmp(NameR.data()+0, "600.store.", 10))
     838             :         break;
     839           6 :       switch (NameR[10]) {
     840             :       default: break;
     841             :       case 'p':  // 1 string to match.
     842           0 :         if (memcmp(NameR.data()+11, "ixel.stencil", 12))
     843             :           break;
     844             :         return AMDGPUIntrinsic::R600_store_pixel_stencil;        // "600.store.pixel.stencil"
     845             :       case 's':  // 1 string to match.
     846           3 :         if (memcmp(NameR.data()+11, "tream.output", 12))
     847             :           break;
     848             :         return AMDGPUIntrinsic::R600_store_stream_output;        // "600.store.stream.output"
     849             :       }
     850             :       break;
     851             :     }
     852             :     break;  // end of 'R' case.
     853             :   case 'S':
     854        1814 :     if (NameR.startswith("I.vs.load.input.")) return AMDGPUIntrinsic::SI_vs_load_input;
     855        1810 :     if (NameR.startswith("I.tbuffer.store.")) return AMDGPUIntrinsic::SI_tbuffer_store;
     856        1800 :     if (NameR.startswith("I.samplel.")) return AMDGPUIntrinsic::SI_samplel;
     857        1794 :     if (NameR.startswith("I.sampled.")) return AMDGPUIntrinsic::SI_sampled;
     858        1744 :     if (NameR.startswith("I.sampleb.")) return AMDGPUIntrinsic::SI_sampleb;
     859        1742 :     if (NameR.startswith("I.sample.")) return AMDGPUIntrinsic::SI_sample;
     860        1666 :     if (NameR.startswith("I.load.const.")) return AMDGPUIntrinsic::SI_load_const;
     861        1194 :     if (NameR.startswith("I.imageload.")) return AMDGPUIntrinsic::SI_imageload;
     862        1172 :     if (NameR.startswith("I.image.sample.o.")) return AMDGPUIntrinsic::SI_image_sample_o;
     863        1170 :     if (NameR.startswith("I.image.sample.lz.o.")) return AMDGPUIntrinsic::SI_image_sample_lz_o;
     864        1168 :     if (NameR.startswith("I.image.sample.lz.")) return AMDGPUIntrinsic::SI_image_sample_lz;
     865        1166 :     if (NameR.startswith("I.image.sample.l.o.")) return AMDGPUIntrinsic::SI_image_sample_l_o;
     866        1164 :     if (NameR.startswith("I.image.sample.l.")) return AMDGPUIntrinsic::SI_image_sample_l;
     867        1162 :     if (NameR.startswith("I.image.sample.d.o.")) return AMDGPUIntrinsic::SI_image_sample_d_o;
     868        1160 :     if (NameR.startswith("I.image.sample.d.cl.o.")) return AMDGPUIntrinsic::SI_image_sample_d_cl_o;
     869        1158 :     if (NameR.startswith("I.image.sample.d.cl.")) return AMDGPUIntrinsic::SI_image_sample_d_cl;
     870        1156 :     if (NameR.startswith("I.image.sample.d.")) return AMDGPUIntrinsic::SI_image_sample_d;
     871        1154 :     if (NameR.startswith("I.image.sample.cl.o.")) return AMDGPUIntrinsic::SI_image_sample_cl_o;
     872        1152 :     if (NameR.startswith("I.image.sample.cl.")) return AMDGPUIntrinsic::SI_image_sample_cl;
     873        1150 :     if (NameR.startswith("I.image.sample.cd.o.")) return AMDGPUIntrinsic::SI_image_sample_cd_o;
     874        1148 :     if (NameR.startswith("I.image.sample.cd.cl.o.")) return AMDGPUIntrinsic::SI_image_sample_cd_cl_o;
     875        1146 :     if (NameR.startswith("I.image.sample.cd.cl.")) return AMDGPUIntrinsic::SI_image_sample_cd_cl;
     876        1144 :     if (NameR.startswith("I.image.sample.cd.")) return AMDGPUIntrinsic::SI_image_sample_cd;
     877        1142 :     if (NameR.startswith("I.image.sample.c.o.")) return AMDGPUIntrinsic::SI_image_sample_c_o;
     878        1140 :     if (NameR.startswith("I.image.sample.c.lz.o.")) return AMDGPUIntrinsic::SI_image_sample_c_lz_o;
     879        1138 :     if (NameR.startswith("I.image.sample.c.lz.")) return AMDGPUIntrinsic::SI_image_sample_c_lz;
     880        1136 :     if (NameR.startswith("I.image.sample.c.l.o.")) return AMDGPUIntrinsic::SI_image_sample_c_l_o;
     881        1134 :     if (NameR.startswith("I.image.sample.c.l.")) return AMDGPUIntrinsic::SI_image_sample_c_l;
     882        1132 :     if (NameR.startswith("I.image.sample.c.d.o.")) return AMDGPUIntrinsic::SI_image_sample_c_d_o;
     883        1130 :     if (NameR.startswith("I.image.sample.c.d.cl.o.")) return AMDGPUIntrinsic::SI_image_sample_c_d_cl_o;
     884        1128 :     if (NameR.startswith("I.image.sample.c.d.cl.")) return AMDGPUIntrinsic::SI_image_sample_c_d_cl;
     885        1126 :     if (NameR.startswith("I.image.sample.c.d.")) return AMDGPUIntrinsic::SI_image_sample_c_d;
     886        1124 :     if (NameR.startswith("I.image.sample.c.cl.o.")) return AMDGPUIntrinsic::SI_image_sample_c_cl_o;
     887        1122 :     if (NameR.startswith("I.image.sample.c.cl.")) return AMDGPUIntrinsic::SI_image_sample_c_cl;
     888        1120 :     if (NameR.startswith("I.image.sample.c.cd.o.")) return AMDGPUIntrinsic::SI_image_sample_c_cd_o;
     889        1118 :     if (NameR.startswith("I.image.sample.c.cd.cl.o.")) return AMDGPUIntrinsic::SI_image_sample_c_cd_cl_o;
     890        1116 :     if (NameR.startswith("I.image.sample.c.cd.cl.")) return AMDGPUIntrinsic::SI_image_sample_c_cd_cl;
     891        1114 :     if (NameR.startswith("I.image.sample.c.cd.")) return AMDGPUIntrinsic::SI_image_sample_c_cd;
     892        1112 :     if (NameR.startswith("I.image.sample.c.b.o.")) return AMDGPUIntrinsic::SI_image_sample_c_b_o;
     893        1110 :     if (NameR.startswith("I.image.sample.c.b.cl.o.")) return AMDGPUIntrinsic::SI_image_sample_c_b_cl_o;
     894        1108 :     if (NameR.startswith("I.image.sample.c.b.cl.")) return AMDGPUIntrinsic::SI_image_sample_c_b_cl;
     895        1106 :     if (NameR.startswith("I.image.sample.c.b.")) return AMDGPUIntrinsic::SI_image_sample_c_b;
     896        1104 :     if (NameR.startswith("I.image.sample.c.")) return AMDGPUIntrinsic::SI_image_sample_c;
     897        1102 :     if (NameR.startswith("I.image.sample.b.o.")) return AMDGPUIntrinsic::SI_image_sample_b_o;
     898        1100 :     if (NameR.startswith("I.image.sample.b.cl.o.")) return AMDGPUIntrinsic::SI_image_sample_b_cl_o;
     899        1098 :     if (NameR.startswith("I.image.sample.b.cl.")) return AMDGPUIntrinsic::SI_image_sample_b_cl;
     900        1096 :     if (NameR.startswith("I.image.sample.b.")) return AMDGPUIntrinsic::SI_image_sample_b;
     901        1094 :     if (NameR.startswith("I.image.sample.")) return AMDGPUIntrinsic::SI_image_sample;
     902        1092 :     if (NameR.startswith("I.image.load.mip.")) return AMDGPUIntrinsic::SI_image_load_mip;
     903        1090 :     if (NameR.startswith("I.image.load.")) return AMDGPUIntrinsic::SI_image_load;
     904        1088 :     if (NameR.startswith("I.getresinfo.")) return AMDGPUIntrinsic::SI_getresinfo;
     905        1086 :     if (NameR.startswith("I.getlod.")) return AMDGPUIntrinsic::SI_getlod;
     906        1080 :     if (NameR.startswith("I.gather4.o.")) return AMDGPUIntrinsic::SI_gather4_o;
     907        1078 :     if (NameR.startswith("I.gather4.lz.o.")) return AMDGPUIntrinsic::SI_gather4_lz_o;
     908        1076 :     if (NameR.startswith("I.gather4.lz.")) return AMDGPUIntrinsic::SI_gather4_lz;
     909        1072 :     if (NameR.startswith("I.gather4.l.o.")) return AMDGPUIntrinsic::SI_gather4_l_o;
     910        1068 :     if (NameR.startswith("I.gather4.l.")) return AMDGPUIntrinsic::SI_gather4_l;
     911        1066 :     if (NameR.startswith("I.gather4.cl.o.")) return AMDGPUIntrinsic::SI_gather4_cl_o;
     912        1062 :     if (NameR.startswith("I.gather4.cl.")) return AMDGPUIntrinsic::SI_gather4_cl;
     913        1060 :     if (NameR.startswith("I.gather4.c.o.")) return AMDGPUIntrinsic::SI_gather4_c_o;
     914        1056 :     if (NameR.startswith("I.gather4.c.lz.o.")) return AMDGPUIntrinsic::SI_gather4_c_lz_o;
     915        1052 :     if (NameR.startswith("I.gather4.c.lz.")) return AMDGPUIntrinsic::SI_gather4_c_lz;
     916        1050 :     if (NameR.startswith("I.gather4.c.l.o.")) return AMDGPUIntrinsic::SI_gather4_c_l_o;
     917        1048 :     if (NameR.startswith("I.gather4.c.l.")) return AMDGPUIntrinsic::SI_gather4_c_l;
     918        1044 :     if (NameR.startswith("I.gather4.c.cl.o.")) return AMDGPUIntrinsic::SI_gather4_c_cl_o;
     919        1042 :     if (NameR.startswith("I.gather4.c.cl.")) return AMDGPUIntrinsic::SI_gather4_c_cl;
     920        1038 :     if (NameR.startswith("I.gather4.c.b.o.")) return AMDGPUIntrinsic::SI_gather4_c_b_o;
     921        1036 :     if (NameR.startswith("I.gather4.c.b.cl.o.")) return AMDGPUIntrinsic::SI_gather4_c_b_cl_o;
     922        1034 :     if (NameR.startswith("I.gather4.c.b.cl.")) return AMDGPUIntrinsic::SI_gather4_c_b_cl;
     923        1032 :     if (NameR.startswith("I.gather4.c.b.")) return AMDGPUIntrinsic::SI_gather4_c_b;
     924        1028 :     if (NameR.startswith("I.gather4.c.")) return AMDGPUIntrinsic::SI_gather4_c;
     925        1026 :     if (NameR.startswith("I.gather4.b.o.")) return AMDGPUIntrinsic::SI_gather4_b_o;
     926        1022 :     if (NameR.startswith("I.gather4.b.cl.o.")) return AMDGPUIntrinsic::SI_gather4_b_cl_o;
     927        1020 :     if (NameR.startswith("I.gather4.b.cl.")) return AMDGPUIntrinsic::SI_gather4_b_cl;
     928        1016 :     if (NameR.startswith("I.gather4.b.")) return AMDGPUIntrinsic::SI_gather4_b;
     929        1014 :     if (NameR.startswith("I.gather4.")) return AMDGPUIntrinsic::SI_gather4;
     930        1010 :     if (NameR.startswith("I.buffer.load.dword.")) return AMDGPUIntrinsic::SI_buffer_load_dword;
     931         996 :     switch (NameR.size()) {
     932             :     default: break;
     933             :     case 4:      // 1 string to match.
     934         182 :       if (memcmp(NameR.data()+0, "I.if", 4))
     935             :         break;
     936             :       return AMDGPUIntrinsic::SI_if;     // "I.if"
     937             :     case 5:      // 1 string to match.
     938          14 :       if (memcmp(NameR.data()+0, "I.tid", 5))
     939             :         break;
     940             :       return AMDGPUIntrinsic::SI_tid;    // "I.tid"
     941             :     case 6:      // 2 strings to match.
     942          78 :       if (memcmp(NameR.data()+0, "I.", 2))
     943             :         break;
     944         156 :       switch (NameR[2]) {
     945             :       default: break;
     946             :       case 'e':  // 1 string to match.
     947          46 :         if (memcmp(NameR.data()+3, "lse", 3))
     948             :           break;
     949             :         return AMDGPUIntrinsic::SI_else;         // "I.else"
     950             :       case 'l':  // 1 string to match.
     951          32 :         if (memcmp(NameR.data()+3, "oop", 3))
     952             :           break;
     953             :         return AMDGPUIntrinsic::SI_loop;         // "I.loop"
     954             :       }
     955             :       break;
     956             :     case 7:      // 1 string to match.
     957           0 :       if (memcmp(NameR.data()+0, "I.break", 7))
     958             :         break;
     959             :       return AMDGPUIntrinsic::SI_break;  // "I.break"
     960             :     case 8:      // 2 strings to match.
     961         487 :       if (memcmp(NameR.data()+0, "I.e", 3))
     962             :         break;
     963         974 :       switch (NameR[3]) {
     964             :       default: break;
     965             :       case 'n':  // 1 string to match.
     966         214 :         if (memcmp(NameR.data()+4, "d.cf", 4))
     967             :           break;
     968             :         return AMDGPUIntrinsic::SI_end_cf;       // "I.end.cf"
     969             :       case 'x':  // 1 string to match.
     970         273 :         if (memcmp(NameR.data()+4, "port", 4))
     971             :           break;
     972             :         return AMDGPUIntrinsic::SI_export;       // "I.export"
     973             :       }
     974             :       break;
     975             :     case 9:      // 3 strings to match.
     976          62 :       if (memcmp(NameR.data()+0, "I.", 2))
     977             :         break;
     978         124 :       switch (NameR[2]) {
     979             :       default: break;
     980             :       case 'p':  // 1 string to match.
     981          20 :         if (memcmp(NameR.data()+3, "ackf16", 6))
     982             :           break;
     983             :         return AMDGPUIntrinsic::SI_packf16;      // "I.packf16"
     984             :       case 'r':  // 1 string to match.
     985          32 :         if (memcmp(NameR.data()+3, "esinfo", 6))
     986             :           break;
     987             :         return AMDGPUIntrinsic::SI_resinfo;      // "I.resinfo"
     988             :       case 's':  // 1 string to match.
     989          10 :         if (memcmp(NameR.data()+3, "endmsg", 6))
     990             :           break;
     991             :         return AMDGPUIntrinsic::SI_sendmsg;      // "I.sendmsg"
     992             :       }
     993             :       break;
     994             :     case 10:     // 1 string to match.
     995          21 :       if (memcmp(NameR.data()+0, "I.if.break", 10))
     996             :         break;
     997             :       return AMDGPUIntrinsic::SI_if_break;       // "I.if.break"
     998             :     case 11:     // 1 string to match.
     999         131 :       if (memcmp(NameR.data()+0, "I.fs.interp", 11))
    1000             :         break;
    1001             :       return AMDGPUIntrinsic::SI_fs_interp;      // "I.fs.interp"
    1002             :     case 12:     // 1 string to match.
    1003          14 :       if (memcmp(NameR.data()+0, "I.else.break", 12))
    1004             :         break;
    1005             :       return AMDGPUIntrinsic::SI_else_break;     // "I.else.break"
    1006             :     case 13:     // 1 string to match.
    1007           7 :       if (memcmp(NameR.data()+0, "I.fs.constant", 13))
    1008             :         break;
    1009             :       return AMDGPUIntrinsic::SI_fs_constant;    // "I.fs.constant"
    1010             :     }
    1011             :     break;  // end of 'S' case.
    1012             :   case 'T':
    1013           0 :     switch (NameR.size()) {
    1014             :     default: break;
    1015             :     case 9:      // 1 string to match.
    1016           0 :       if (memcmp(NameR.data()+0, "GSI.lit.z", 9))
    1017             :         break;
    1018             :       return AMDGPUIntrinsic::TGSI_lit_z;        // "GSI.lit.z"
    1019             :     }
    1020             :     break;  // end of 'T' case.
    1021             :   }
    1022             : #endif
    1023             : 
    1024             : // Global intrinsic function declaration type table.
    1025             : #ifdef GET_INTRINSIC_GENERATOR_GLOBAL
    1026             : static const unsigned IIT_Table[] = {
    1027             :   0x44, 0x74, 0x0, 0x0, 0x4444, 0x4444, 0x4444, 
    1028             :   0x444, 0x44, 0x2F2F2F2F, 0x7777, 0x7A7A, 0x47, 0x47, 0x47, 
    1029             :   0x47, 0x4447A7A, 0x4447A7A, 0x777, 0x7A7A7, 0x44, 0x2F2F, 0x4444, 
    1030             :   0x444, 0x444, 0x444, 0x70, 0x0, 0x77, 0x7777, 0x777, 
    1031             :   0x7777A, 0x777, 0x777, 0x777, 0x777, 0x777, 0x777, 0x470, 
    1032             :   0x47A7A, 0x4447A7A, 0x77, 0x4447A7A, (1U<<31) | 102, (1U<<31) | 91, 0x4447A7A, 0x4447A7A, 
    1033             :   0x4444, 0x444, 0x444, 0x444, 0x1F1F, 0x2F2F2F2F, 0x2F2F, 0x2F2F, 
    1034             :   0x2F2F, (1U<<31) | 31, (1U<<31) | 31, 0x47A, 0x447, 0x77479, 0x77479, (1U<<31) | 17, 
    1035             :   0x47, 0x447A, 0x40, 0x70, 0x70, 0x4447A0, 0x447A0, (1U<<31) | 31, 
    1036             :   (1U<<31) | 31, (1U<<31) | 31, (1U<<31) | 31, (1U<<31) | 17, (1U<<31) | 31, (1U<<31) | 31, (1U<<31) | 17, 0x55, 
    1037             :   (1U<<31) | 77, (1U<<31) | 143, 0x555, 0x50, (1U<<31) | 124, 0x4447, 0x494447, (1U<<31) | 45, 
    1038             :   (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 
    1039             :   (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 
    1040             :   (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 
    1041             :   (1U<<31) | 62, (1U<<31) | 135, 0x515, (1U<<31) | 62, (1U<<31) | 62, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 
    1042             :   (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 
    1043             :   (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 
    1044             :   (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 
    1045             :   (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 
    1046             :   (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, (1U<<31) | 45, 0x42D3F4A, 0x41F7, (1U<<31) | 139, 
    1047             :   0x774, 0x42D44A, (1U<<31) | 114, (1U<<31) | 114, (1U<<31) | 114, (1U<<31) | 114, 0x440, (1U<<31) | 0, 
    1048             :   0x4, 0x431F7A, 0x7777, 0
    1049             : };
    1050             : 
    1051             : static const unsigned char IIT_LongEncodingTable[] = {
    1052             :   /* 0 */ 0, 15, 1, 15, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
    1053             :   /* 17 */ 10, 4, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
    1054             :   /* 31 */ 10, 7, 10, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
    1055             :   /* 45 */ 10, 7, 15, 1, 11, 4, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
    1056             :   /* 62 */ 10, 7, 15, 1, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0,
    1057             :   /* 77 */ 15, 1, 15, 9, 15, 17, 4, 4, 4, 4, 4, 4, 4, 0,
    1058             :   /* 91 */ 10, 7, 10, 7, 4, 4, 4, 4, 4, 4, 0,
    1059             :   /* 102 */ 10, 7, 10, 7, 10, 7, 10, 7, 4, 4, 4, 0,
    1060             :   /* 114 */ 10, 7, 15, 3, 13, 2, 15, 9, 4, 0,
    1061             :   /* 124 */ 0, 4, 4, 4, 4, 4, 7, 7, 7, 7, 0,
    1062             :   /* 135 */ 5, 1, 19, 0,
    1063             :   /* 139 */ 0, 5, 19, 0,
    1064             :   /* 143 */ 5, 5, 19, 0,
    1065             :   255
    1066             : };
    1067             : 
    1068             : #endif
    1069             : 
    1070             : // Add parameter attributes that are not common to all intrinsics.
    1071             : #ifdef GET_INTRINSIC_ATTRIBUTES
    1072             : static AttributeSet getAttributes(LLVMContext &C, AMDGPUIntrinsic::ID id) {
    1073             :   static const uint8_t IntrinsicsToAttributesMap[] = {
    1074             :     1, // llvm.AMDGPU.abs
    1075             :     1, // llvm.AMDGPU.arl
    1076             :     2, // llvm.AMDGPU.barrier.global
    1077             :     2, // llvm.AMDGPU.barrier.local
    1078             :     1, // llvm.AMDGPU.bfe.i32
    1079             :     1, // llvm.AMDGPU.bfe.u32
    1080             :     1, // llvm.AMDGPU.bfi
    1081             :     1, // llvm.AMDGPU.bfm
    1082             :     1, // llvm.AMDGPU.brev
    1083             :     1, // llvm.AMDGPU.clamp
    1084             :     1, // llvm.AMDGPU.cndlt
    1085             :     1, // llvm.AMDGPU.cube
    1086             :     1, // llvm.AMDGPU.cvt.f32.ubyte0
    1087             :     1, // llvm.AMDGPU.cvt.f32.ubyte1
    1088             :     1, // llvm.AMDGPU.cvt.f32.ubyte2
    1089             :     1, // llvm.AMDGPU.cvt.f32.ubyte3
    1090             :     1, // llvm.AMDGPU.ddx
    1091             :     1, // llvm.AMDGPU.ddy
    1092             :     1, // llvm.AMDGPU.div
    1093             :     1, // llvm.AMDGPU.dp4
    1094             :     1, // llvm.AMDGPU.flbit.i32
    1095             :     1, // llvm.AMDGPU.fract
    1096             :     1, // llvm.AMDGPU.imad24
    1097             :     1, // llvm.AMDGPU.imax
    1098             :     1, // llvm.AMDGPU.imin
    1099             :     1, // llvm.AMDGPU.imul24
    1100             :     2, // llvm.AMDGPU.kill
    1101             :     2, // llvm.AMDGPU.kilp
    1102             :     1, // llvm.AMDGPU.legacy.rsq
    1103             :     1, // llvm.AMDGPU.lrp
    1104             :     1, // llvm.AMDGPU.mul
    1105             :     1, // llvm.AMDGPU.mullit
    1106             :     1, // llvm.AMDGPU.pow
    1107             :     1, // llvm.AMDGPU.seq
    1108             :     1, // llvm.AMDGPU.sge
    1109             :     1, // llvm.AMDGPU.sgt
    1110             :     1, // llvm.AMDGPU.sle
    1111             :     1, // llvm.AMDGPU.sne
    1112             :     2, // llvm.AMDGPU.store.output
    1113             :     1, // llvm.AMDGPU.swizzle
    1114             :     1, // llvm.AMDGPU.tex
    1115             :     1, // llvm.AMDGPU.trunc
    1116             :     1, // llvm.AMDGPU.txb
    1117             :     1, // llvm.AMDGPU.txd
    1118             :     1, // llvm.AMDGPU.txf
    1119             :     1, // llvm.AMDGPU.txl
    1120             :     1, // llvm.AMDGPU.txq
    1121             :     1, // llvm.AMDGPU.umad24
    1122             :     1, // llvm.AMDGPU.umax
    1123             :     1, // llvm.AMDGPU.umin
    1124             :     1, // llvm.AMDGPU.umul24
    1125             :     1, // llvm.AMDIL.abs
    1126             :     1, // llvm.AMDIL.clamp
    1127             :     1, // llvm.AMDIL.exp
    1128             :     1, // llvm.AMDIL.fraction
    1129             :     1, // llvm.AMDIL.round.nearest
    1130             :     1, // llvm.R600.ddx
    1131             :     1, // llvm.R600.ddy
    1132             :     1, // llvm.R600.interp.const
    1133             :     1, // llvm.R600.interp.input
    1134             :     1, // llvm.R600.interp.xy
    1135             :     1, // llvm.R600.interp.zw
    1136             :     1, // llvm.R600.ldptr
    1137             :     1, // llvm.R600.load.input
    1138             :     1, // llvm.R600.load.texbuf
    1139             :     2, // llvm.R600.store.dummy
    1140             :     2, // llvm.R600.store.pixel.depth
    1141             :     2, // llvm.R600.store.pixel.stencil
    1142             :     2, // llvm.R600.store.stream.output
    1143             :     2, // llvm.R600.store.swizzle
    1144             :     1, // llvm.R600.tex
    1145             :     1, // llvm.R600.texc
    1146             :     1, // llvm.R600.txb
    1147             :     1, // llvm.R600.txbc
    1148             :     1, // llvm.R600.txf
    1149             :     1, // llvm.R600.txl
    1150             :     1, // llvm.R600.txlc
    1151             :     1, // llvm.R600.txq
    1152             :     2, // llvm.SI.break
    1153             :     3, // llvm.SI.buffer.load.dword
    1154             :     2, // llvm.SI.else
    1155             :     2, // llvm.SI.else.break
    1156             :     2, // llvm.SI.end.cf
    1157             :     2, // llvm.SI.export
    1158             :     1, // llvm.SI.fs.constant
    1159             :     1, // llvm.SI.fs.interp
    1160             :     1, // llvm.SI.gather4
    1161             :     1, // llvm.SI.gather4.b
    1162             :     1, // llvm.SI.gather4.b.cl
    1163             :     1, // llvm.SI.gather4.b.cl.o
    1164             :     1, // llvm.SI.gather4.b.o
    1165             :     1, // llvm.SI.gather4.c
    1166             :     1, // llvm.SI.gather4.c.b
    1167             :     1, // llvm.SI.gather4.c.b.cl
    1168             :     1, // llvm.SI.gather4.c.b.cl.o
    1169             :     1, // llvm.SI.gather4.c.b.o
    1170             :     1, // llvm.SI.gather4.c.cl
    1171             :     1, // llvm.SI.gather4.c.cl.o
    1172             :     1, // llvm.SI.gather4.c.l
    1173             :     1, // llvm.SI.gather4.c.l.o
    1174             :     1, // llvm.SI.gather4.c.lz
    1175             :     1, // llvm.SI.gather4.c.lz.o
    1176             :     1, // llvm.SI.gather4.c.o
    1177             :     1, // llvm.SI.gather4.cl
    1178             :     1, // llvm.SI.gather4.cl.o
    1179             :     1, // llvm.SI.gather4.l
    1180             :     1, // llvm.SI.gather4.l.o
    1181             :     1, // llvm.SI.gather4.lz
    1182             :     1, // llvm.SI.gather4.lz.o
    1183             :     1, // llvm.SI.gather4.o
    1184             :     1, // llvm.SI.getlod
    1185             :     1, // llvm.SI.getresinfo
    1186             :     2, // llvm.SI.if
    1187             :     2, // llvm.SI.if.break
    1188             :     1, // llvm.SI.image.load
    1189             :     1, // llvm.SI.image.load.mip
    1190             :     1, // llvm.SI.image.sample
    1191             :     1, // llvm.SI.image.sample.b
    1192             :     1, // llvm.SI.image.sample.b.cl
    1193             :     1, // llvm.SI.image.sample.b.cl.o
    1194             :     1, // llvm.SI.image.sample.b.o
    1195             :     1, // llvm.SI.image.sample.c
    1196             :     1, // llvm.SI.image.sample.c.b
    1197             :     1, // llvm.SI.image.sample.c.b.cl
    1198             :     1, // llvm.SI.image.sample.c.b.cl.o
    1199             :     1, // llvm.SI.image.sample.c.b.o
    1200             :     1, // llvm.SI.image.sample.c.cd
    1201             :     1, // llvm.SI.image.sample.c.cd.cl
    1202             :     1, // llvm.SI.image.sample.c.cd.cl.o
    1203             :     1, // llvm.SI.image.sample.c.cd.o
    1204             :     1, // llvm.SI.image.sample.c.cl
    1205             :     1, // llvm.SI.image.sample.c.cl.o
    1206             :     1, // llvm.SI.image.sample.c.d
    1207             :     1, // llvm.SI.image.sample.c.d.cl
    1208             :     1, // llvm.SI.image.sample.c.d.cl.o
    1209             :     1, // llvm.SI.image.sample.c.d.o
    1210             :     1, // llvm.SI.image.sample.c.l
    1211             :     1, // llvm.SI.image.sample.c.l.o
    1212             :     1, // llvm.SI.image.sample.c.lz
    1213             :     1, // llvm.SI.image.sample.c.lz.o
    1214             :     1, // llvm.SI.image.sample.c.o
    1215             :     1, // llvm.SI.image.sample.cd
    1216             :     1, // llvm.SI.image.sample.cd.cl
    1217             :     1, // llvm.SI.image.sample.cd.cl.o
    1218             :     1, // llvm.SI.image.sample.cd.o
    1219             :     1, // llvm.SI.image.sample.cl
    1220             :     1, // llvm.SI.image.sample.cl.o
    1221             :     1, // llvm.SI.image.sample.d
    1222             :     1, // llvm.SI.image.sample.d.cl
    1223             :     1, // llvm.SI.image.sample.d.cl.o
    1224             :     1, // llvm.SI.image.sample.d.o
    1225             :     1, // llvm.SI.image.sample.l
    1226             :     1, // llvm.SI.image.sample.l.o
    1227             :     1, // llvm.SI.image.sample.lz
    1228             :     1, // llvm.SI.image.sample.lz.o
    1229             :     1, // llvm.SI.image.sample.o
    1230             :     1, // llvm.SI.imageload
    1231             :     1, // llvm.SI.load.const
    1232             :     2, // llvm.SI.loop
    1233             :     1, // llvm.SI.packf16
    1234             :     1, // llvm.SI.resinfo
    1235             :     1, // llvm.SI.sample
    1236             :     1, // llvm.SI.sampleb
    1237             :     1, // llvm.SI.sampled
    1238             :     1, // llvm.SI.samplel
    1239             :     1, // llvm.SI.sendmsg
    1240             :     2, // llvm.SI.tbuffer.store
    1241             :     1, // llvm.SI.tid
    1242             :     1, // llvm.SI.vs.load.input
    1243             :     1, // llvm.TGSI.lit.z
    1244             :   };
    1245             : 
    1246             :   AttributeSet AS[1];
    1247             :   unsigned NumAttrs = 0;
    1248             :   if (id != 0) {
    1249             :     switch(IntrinsicsToAttributesMap[id - Intrinsic::num_intrinsics]) {
    1250             :     default: llvm_unreachable("Invalid attribute number");
    1251             :     case 1: {
    1252             :       const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadNone};
    1253             :       AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
    1254             :       NumAttrs = 1;
    1255             :       break;
    1256             :       }
    1257             :     case 3: {
    1258             :       const Attribute::AttrKind Atts[] = {Attribute::NoUnwind,Attribute::ReadOnly};
    1259             :       AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
    1260             :       NumAttrs = 1;
    1261             :       break;
    1262             :       }
    1263             :     case 2: {
    1264             :       const Attribute::AttrKind Atts[] = {Attribute::NoUnwind};
    1265             :       AS[0] = AttributeSet::get(C, AttributeSet::FunctionIndex, Atts);
    1266             :       NumAttrs = 1;
    1267             :       break;
    1268             :       }
    1269             :     }
    1270             :   }
    1271             :   return AttributeSet::get(C, makeArrayRef(AS, NumAttrs));
    1272             : }
    1273             : #endif // GET_INTRINSIC_ATTRIBUTES
    1274             : 
    1275             : // Determine intrinsic alias analysis mod/ref behavior.
    1276             : #ifdef GET_INTRINSIC_MODREF_BEHAVIOR
    1277             : assert(iid <= Intrinsic::TGSI_lit_z && "Unknown intrinsic.");
    1278             : 
    1279             : static const uint8_t IntrinsicModRefBehavior[] = {
    1280             :   /* invalid */ UnknownModRefBehavior,
    1281             :   /* AMDGPUAMDGPU_abs */ DoesNotAccessMemory,
    1282             :   /* AMDGPUAMDGPU_arl */ DoesNotAccessMemory,
    1283             :   /* AMDGPUAMDGPU_barrier_global */ UnknownModRefBehavior,
    1284             :   /* AMDGPUAMDGPU_barrier_local */ UnknownModRefBehavior,
    1285             :   /* AMDGPUAMDGPU_bfe_i32 */ DoesNotAccessMemory,
    1286             :   /* AMDGPUAMDGPU_bfe_u32 */ DoesNotAccessMemory,
    1287             :   /* AMDGPUAMDGPU_bfi */ DoesNotAccessMemory,
    1288             :   /* AMDGPUAMDGPU_bfm */ DoesNotAccessMemory,
    1289             :   /* AMDGPUAMDGPU_brev */ DoesNotAccessMemory,
    1290             :   /* AMDGPUAMDGPU_clamp */ DoesNotAccessMemory,
    1291             :   /* AMDGPUAMDGPU_cndlt */ DoesNotAccessMemory,
    1292             :   /* AMDGPUAMDGPU_cube */ DoesNotAccessMemory,
    1293             :   /* AMDGPUAMDGPU_cvt_f32_ubyte0 */ DoesNotAccessMemory,
    1294             :   /* AMDGPUAMDGPU_cvt_f32_ubyte1 */ DoesNotAccessMemory,
    1295             :   /* AMDGPUAMDGPU_cvt_f32_ubyte2 */ DoesNotAccessMemory,
    1296             :   /* AMDGPUAMDGPU_cvt_f32_ubyte3 */ DoesNotAccessMemory,
    1297             :   /* AMDGPUAMDGPU_ddx */ DoesNotAccessMemory,
    1298             :   /* AMDGPUAMDGPU_ddy */ DoesNotAccessMemory,
    1299             :   /* AMDGPUAMDGPU_div */ DoesNotAccessMemory,
    1300             :   /* AMDGPUAMDGPU_dp4 */ DoesNotAccessMemory,
    1301             :   /* AMDGPUAMDGPU_flbit_i32 */ DoesNotAccessMemory,
    1302             :   /* AMDGPUAMDGPU_fract */ DoesNotAccessMemory,
    1303             :   /* AMDGPUAMDGPU_imad24 */ DoesNotAccessMemory,
    1304             :   /* AMDGPUAMDGPU_imax */ DoesNotAccessMemory,
    1305             :   /* AMDGPUAMDGPU_imin */ DoesNotAccessMemory,
    1306             :   /* AMDGPUAMDGPU_imul24 */ DoesNotAccessMemory,
    1307             :   /* AMDGPUAMDGPU_kill */ UnknownModRefBehavior,
    1308             :   /* AMDGPUAMDGPU_kilp */ UnknownModRefBehavior,
    1309             :   /* AMDGPUAMDGPU_legacy_rsq */ DoesNotAccessMemory,
    1310             :   /* AMDGPUAMDGPU_lrp */ DoesNotAccessMemory,
    1311             :   /* AMDGPUAMDGPU_mul */ DoesNotAccessMemory,
    1312             :   /* AMDGPUAMDGPU_mullit */ DoesNotAccessMemory,
    1313             :   /* AMDGPUAMDGPU_pow */ DoesNotAccessMemory,
    1314             :   /* AMDGPUAMDGPU_seq */ DoesNotAccessMemory,
    1315             :   /* AMDGPUAMDGPU_sge */ DoesNotAccessMemory,
    1316             :   /* AMDGPUAMDGPU_sgt */ DoesNotAccessMemory,
    1317             :   /* AMDGPUAMDGPU_sle */ DoesNotAccessMemory,
    1318             :   /* AMDGPUAMDGPU_sne */ DoesNotAccessMemory,
    1319             :   /* AMDGPUAMDGPU_store_output */ UnknownModRefBehavior,
    1320             :   /* AMDGPUAMDGPU_swizzle */ DoesNotAccessMemory,
    1321             :   /* AMDGPUAMDGPU_tex */ DoesNotAccessMemory,
    1322             :   /* AMDGPUAMDGPU_trunc */ DoesNotAccessMemory,
    1323             :   /* AMDGPUAMDGPU_txb */ DoesNotAccessMemory,
    1324             :   /* AMDGPUAMDGPU_txd */ DoesNotAccessMemory,
    1325             :   /* AMDGPUAMDGPU_txf */ DoesNotAccessMemory,
    1326             :   /* AMDGPUAMDGPU_txl */ DoesNotAccessMemory,
    1327             :   /* AMDGPUAMDGPU_txq */ DoesNotAccessMemory,
    1328             :   /* AMDGPUAMDGPU_umad24 */ DoesNotAccessMemory,
    1329             :   /* AMDGPUAMDGPU_umax */ DoesNotAccessMemory,
    1330             :   /* AMDGPUAMDGPU_umin */ DoesNotAccessMemory,
    1331             :   /* AMDGPUAMDGPU_umul24 */ DoesNotAccessMemory,
    1332             :   /* AMDGPUAMDIL_abs */ DoesNotAccessMemory,
    1333             :   /* AMDGPUAMDIL_clamp */ DoesNotAccessMemory,
    1334             :   /* AMDGPUAMDIL_exp */ DoesNotAccessMemory,
    1335             :   /* AMDGPUAMDIL_fraction */ DoesNotAccessMemory,
    1336             :   /* AMDGPUAMDIL_round_nearest */ DoesNotAccessMemory,
    1337             :   /* AMDGPUR600_ddx */ DoesNotAccessMemory,
    1338             :   /* AMDGPUR600_ddy */ DoesNotAccessMemory,
    1339             :   /* AMDGPUR600_interp_const */ DoesNotAccessMemory,
    1340             :   /* AMDGPUR600_interp_input */ DoesNotAccessMemory,
    1341             :   /* AMDGPUR600_interp_xy */ DoesNotAccessMemory,
    1342             :   /* AMDGPUR600_interp_zw */ DoesNotAccessMemory,
    1343             :   /* AMDGPUR600_ldptr */ DoesNotAccessMemory,
    1344             :   /* AMDGPUR600_load_input */ DoesNotAccessMemory,
    1345             :   /* AMDGPUR600_load_texbuf */ DoesNotAccessMemory,
    1346             :   /* AMDGPUR600_store_dummy */ UnknownModRefBehavior,
    1347             :   /* AMDGPUR600_store_pixel_depth */ UnknownModRefBehavior,
    1348             :   /* AMDGPUR600_store_pixel_stencil */ UnknownModRefBehavior,
    1349             :   /* AMDGPUR600_store_stream_output */ UnknownModRefBehavior,
    1350             :   /* AMDGPUR600_store_swizzle */ UnknownModRefBehavior,
    1351             :   /* AMDGPUR600_tex */ DoesNotAccessMemory,
    1352             :   /* AMDGPUR600_texc */ DoesNotAccessMemory,
    1353             :   /* AMDGPUR600_txb */ DoesNotAccessMemory,
    1354             :   /* AMDGPUR600_txbc */ DoesNotAccessMemory,
    1355             :   /* AMDGPUR600_txf */ DoesNotAccessMemory,
    1356             :   /* AMDGPUR600_txl */ DoesNotAccessMemory,
    1357             :   /* AMDGPUR600_txlc */ DoesNotAccessMemory,
    1358             :   /* AMDGPUR600_txq */ DoesNotAccessMemory,
    1359             :   /* AMDGPUSI_break */ UnknownModRefBehavior,
    1360             :   /* AMDGPUSI_buffer_load_dword */ OnlyReadsArgumentPointees,
    1361             :   /* AMDGPUSI_else */ UnknownModRefBehavior,
    1362             :   /* AMDGPUSI_else_break */ UnknownModRefBehavior,
    1363             :   /* AMDGPUSI_end_cf */ UnknownModRefBehavior,
    1364             :   /* AMDGPUSI_export */ UnknownModRefBehavior,
    1365             :   /* AMDGPUSI_fs_constant */ DoesNotAccessMemory,
    1366             :   /* AMDGPUSI_fs_interp */ DoesNotAccessMemory,
    1367             :   /* AMDGPUSI_gather4 */ DoesNotAccessMemory,
    1368             :   /* AMDGPUSI_gather4_b */ DoesNotAccessMemory,
    1369             :   /* AMDGPUSI_gather4_b_cl */ DoesNotAccessMemory,
    1370             :   /* AMDGPUSI_gather4_b_cl_o */ DoesNotAccessMemory,
    1371             :   /* AMDGPUSI_gather4_b_o */ DoesNotAccessMemory,
    1372             :   /* AMDGPUSI_gather4_c */ DoesNotAccessMemory,
    1373             :   /* AMDGPUSI_gather4_c_b */ DoesNotAccessMemory,
    1374             :   /* AMDGPUSI_gather4_c_b_cl */ DoesNotAccessMemory,
    1375             :   /* AMDGPUSI_gather4_c_b_cl_o */ DoesNotAccessMemory,
    1376             :   /* AMDGPUSI_gather4_c_b_o */ DoesNotAccessMemory,
    1377             :   /* AMDGPUSI_gather4_c_cl */ DoesNotAccessMemory,
    1378             :   /* AMDGPUSI_gather4_c_cl_o */ DoesNotAccessMemory,
    1379             :   /* AMDGPUSI_gather4_c_l */ DoesNotAccessMemory,
    1380             :   /* AMDGPUSI_gather4_c_l_o */ DoesNotAccessMemory,
    1381             :   /* AMDGPUSI_gather4_c_lz */ DoesNotAccessMemory,
    1382             :   /* AMDGPUSI_gather4_c_lz_o */ DoesNotAccessMemory,
    1383             :   /* AMDGPUSI_gather4_c_o */ DoesNotAccessMemory,
    1384             :   /* AMDGPUSI_gather4_cl */ DoesNotAccessMemory,
    1385             :   /* AMDGPUSI_gather4_cl_o */ DoesNotAccessMemory,
    1386             :   /* AMDGPUSI_gather4_l */ DoesNotAccessMemory,
    1387             :   /* AMDGPUSI_gather4_l_o */ DoesNotAccessMemory,
    1388             :   /* AMDGPUSI_gather4_lz */ DoesNotAccessMemory,
    1389             :   /* AMDGPUSI_gather4_lz_o */ DoesNotAccessMemory,
    1390             :   /* AMDGPUSI_gather4_o */ DoesNotAccessMemory,
    1391             :   /* AMDGPUSI_getlod */ DoesNotAccessMemory,
    1392             :   /* AMDGPUSI_getresinfo */ DoesNotAccessMemory,
    1393             :   /* AMDGPUSI_if */ UnknownModRefBehavior,
    1394             :   /* AMDGPUSI_if_break */ UnknownModRefBehavior,
    1395             :   /* AMDGPUSI_image_load */ DoesNotAccessMemory,
    1396             :   /* AMDGPUSI_image_load_mip */ DoesNotAccessMemory,
    1397             :   /* AMDGPUSI_image_sample */ DoesNotAccessMemory,
    1398             :   /* AMDGPUSI_image_sample_b */ DoesNotAccessMemory,
    1399             :   /* AMDGPUSI_image_sample_b_cl */ DoesNotAccessMemory,
    1400             :   /* AMDGPUSI_image_sample_b_cl_o */ DoesNotAccessMemory,
    1401             :   /* AMDGPUSI_image_sample_b_o */ DoesNotAccessMemory,
    1402             :   /* AMDGPUSI_image_sample_c */ DoesNotAccessMemory,
    1403             :   /* AMDGPUSI_image_sample_c_b */ DoesNotAccessMemory,
    1404             :   /* AMDGPUSI_image_sample_c_b_cl */ DoesNotAccessMemory,
    1405             :   /* AMDGPUSI_image_sample_c_b_cl_o */ DoesNotAccessMemory,
    1406             :   /* AMDGPUSI_image_sample_c_b_o */ DoesNotAccessMemory,
    1407             :   /* AMDGPUSI_image_sample_c_cd */ DoesNotAccessMemory,
    1408             :   /* AMDGPUSI_image_sample_c_cd_cl */ DoesNotAccessMemory,
    1409             :   /* AMDGPUSI_image_sample_c_cd_cl_o */ DoesNotAccessMemory,
    1410             :   /* AMDGPUSI_image_sample_c_cd_o */ DoesNotAccessMemory,
    1411             :   /* AMDGPUSI_image_sample_c_cl */ DoesNotAccessMemory,
    1412             :   /* AMDGPUSI_image_sample_c_cl_o */ DoesNotAccessMemory,
    1413             :   /* AMDGPUSI_image_sample_c_d */ DoesNotAccessMemory,
    1414             :   /* AMDGPUSI_image_sample_c_d_cl */ DoesNotAccessMemory,
    1415             :   /* AMDGPUSI_image_sample_c_d_cl_o */ DoesNotAccessMemory,
    1416             :   /* AMDGPUSI_image_sample_c_d_o */ DoesNotAccessMemory,
    1417             :   /* AMDGPUSI_image_sample_c_l */ DoesNotAccessMemory,
    1418             :   /* AMDGPUSI_image_sample_c_l_o */ DoesNotAccessMemory,
    1419             :   /* AMDGPUSI_image_sample_c_lz */ DoesNotAccessMemory,
    1420             :   /* AMDGPUSI_image_sample_c_lz_o */ DoesNotAccessMemory,
    1421             :   /* AMDGPUSI_image_sample_c_o */ DoesNotAccessMemory,
    1422             :   /* AMDGPUSI_image_sample_cd */ DoesNotAccessMemory,
    1423             :   /* AMDGPUSI_image_sample_cd_cl */ DoesNotAccessMemory,
    1424             :   /* AMDGPUSI_image_sample_cd_cl_o */ DoesNotAccessMemory,
    1425             :   /* AMDGPUSI_image_sample_cd_o */ DoesNotAccessMemory,
    1426             :   /* AMDGPUSI_image_sample_cl */ DoesNotAccessMemory,
    1427             :   /* AMDGPUSI_image_sample_cl_o */ DoesNotAccessMemory,
    1428             :   /* AMDGPUSI_image_sample_d */ DoesNotAccessMemory,
    1429             :   /* AMDGPUSI_image_sample_d_cl */ DoesNotAccessMemory,
    1430             :   /* AMDGPUSI_image_sample_d_cl_o */ DoesNotAccessMemory,
    1431             :   /* AMDGPUSI_image_sample_d_o */ DoesNotAccessMemory,
    1432             :   /* AMDGPUSI_image_sample_l */ DoesNotAccessMemory,
    1433             :   /* AMDGPUSI_image_sample_l_o */ DoesNotAccessMemory,
    1434             :   /* AMDGPUSI_image_sample_lz */ DoesNotAccessMemory,
    1435             :   /* AMDGPUSI_image_sample_lz_o */ DoesNotAccessMemory,
    1436             :   /* AMDGPUSI_image_sample_o */ DoesNotAccessMemory,
    1437             :   /* AMDGPUSI_imageload */ DoesNotAccessMemory,
    1438             :   /* AMDGPUSI_load_const */ DoesNotAccessMemory,
    1439             :   /* AMDGPUSI_loop */ UnknownModRefBehavior,
    1440             :   /* AMDGPUSI_packf16 */ DoesNotAccessMemory,
    1441             :   /* AMDGPUSI_resinfo */ DoesNotAccessMemory,
    1442             :   /* AMDGPUSI_sample */ DoesNotAccessMemory,
    1443             :   /* AMDGPUSI_sampleb */ DoesNotAccessMemory,
    1444             :   /* AMDGPUSI_sampled */ DoesNotAccessMemory,
    1445             :   /* AMDGPUSI_samplel */ DoesNotAccessMemory,
    1446             :   /* AMDGPUSI_sendmsg */ DoesNotAccessMemory,
    1447             :   /* AMDGPUSI_tbuffer_store */ UnknownModRefBehavior,
    1448             :   /* AMDGPUSI_tid */ DoesNotAccessMemory,
    1449             :   /* AMDGPUSI_vs_load_input */ DoesNotAccessMemory,
    1450             :   /* AMDGPUTGSI_lit_z */ DoesNotAccessMemory,
    1451             : };
    1452             : 
    1453             : return static_cast<ModRefBehavior>(IntrinsicModRefBehavior[iid]);
    1454             : #endif // GET_INTRINSIC_MODREF_BEHAVIOR
    1455             : 
    1456             : // Get the LLVM intrinsic that corresponds to a GCC builtin.
    1457             : // This is used by the C front-end.  The GCC builtin name is passed
    1458             : // in as BuiltinName, and a target prefix (e.g. 'ppc') is passed
    1459             : // in as TargetPrefix.  The result is assigned to 'IntrinsicID'.
    1460             : #ifdef GET_LLVM_INTRINSIC_FOR_GCC_BUILTIN
    1461             : static AMDGPUIntrinsic::ID getIntrinsicForGCCBuiltin(const char *TargetPrefixStr, const char *BuiltinNameStr) {
    1462             :   StringRef BuiltinName(BuiltinNameStr);
    1463             :   StringRef TargetPrefix(TargetPrefixStr);
    1464             : 
    1465             :   return (AMDGPUIntrinsic::ID)Intrinsic::not_intrinsic;
    1466             : }
    1467             : #endif
    1468             : 
    1469             : // Get the LLVM intrinsic that corresponds to a MS builtin.
    1470             : // This is used by the C front-end.  The MS builtin name is passed
    1471             : // in as a BuiltinName, and a target prefix (e.g. 'arm') is passed
    1472             : // in as a TargetPrefix.  The result is assigned to 'IntrinsicID'.
    1473             : #ifdef GET_LLVM_INTRINSIC_FOR_MS_BUILTIN
    1474             : static AMDGPUIntrinsic::ID getIntrinsicForMSBuiltin(const char *TP, const char *BN) {
    1475             :   StringRef BuiltinName(BN);
    1476             :   StringRef TargetPrefix(TP);
    1477             : 
    1478             :   return (AMDGPUIntrinsic::ID)Intrinsic::not_intrinsic;
    1479             : }
    1480             : #endif
    1481             : 
    1482             : #if defined(_MSC_VER) && defined(setjmp_undefined_for_msvc)
    1483             : // let's return it to _setjmp state
    1484             : #  pragma pop_macro("setjmp")
    1485             : #  undef setjmp_undefined_for_msvc
    1486             : #endif
    1487             : 

Generated by: LCOV version 1.11