xref: /aosp_15_r20/external/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker//===- NVPTXIntrinsics.td - PTX Intrinsics Instructions -------*- tblgen -*-==//
2*9880d681SAndroid Build Coastguard Worker//
3*9880d681SAndroid Build Coastguard Worker//                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker//
5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker//
8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdef immFloat0 : PatLeaf<(fpimm), [{
11*9880d681SAndroid Build Coastguard Worker    float f = (float)N->getValueAPF().convertToFloat();
12*9880d681SAndroid Build Coastguard Worker    return (f==0.0f);
13*9880d681SAndroid Build Coastguard Worker}]>;
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerdef immFloat1 : PatLeaf<(fpimm), [{
16*9880d681SAndroid Build Coastguard Worker    float f = (float)N->getValueAPF().convertToFloat();
17*9880d681SAndroid Build Coastguard Worker    return (f==1.0f);
18*9880d681SAndroid Build Coastguard Worker}]>;
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerdef immDouble0 : PatLeaf<(fpimm), [{
21*9880d681SAndroid Build Coastguard Worker    double d = (double)N->getValueAPF().convertToDouble();
22*9880d681SAndroid Build Coastguard Worker    return (d==0.0);
23*9880d681SAndroid Build Coastguard Worker}]>;
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerdef immDouble1 : PatLeaf<(fpimm), [{
26*9880d681SAndroid Build Coastguard Worker    double d = (double)N->getValueAPF().convertToDouble();
27*9880d681SAndroid Build Coastguard Worker    return (d==1.0);
28*9880d681SAndroid Build Coastguard Worker}]>;
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Worker//-----------------------------------
33*9880d681SAndroid Build Coastguard Worker// Synchronization and shuffle functions
34*9880d681SAndroid Build Coastguard Worker//-----------------------------------
35*9880d681SAndroid Build Coastguard Workerlet isConvergent = 1 in {
36*9880d681SAndroid Build Coastguard Workerdef INT_BARRIER0 : NVPTXInst<(outs), (ins),
37*9880d681SAndroid Build Coastguard Worker                  "bar.sync \t0;",
38*9880d681SAndroid Build Coastguard Worker      [(int_nvvm_barrier0)]>;
39*9880d681SAndroid Build Coastguard Workerdef INT_BARRIER0_POPC : NVPTXInst<(outs Int32Regs:$dst), (ins Int32Regs:$pred),
40*9880d681SAndroid Build Coastguard Worker  !strconcat("{{ \n\t",
41*9880d681SAndroid Build Coastguard Worker      !strconcat(".reg .pred \t%p1; \n\t",
42*9880d681SAndroid Build Coastguard Worker      !strconcat("setp.ne.u32 \t%p1, $pred, 0; \n\t",
43*9880d681SAndroid Build Coastguard Worker      !strconcat("bar.red.popc.u32 \t$dst, 0, %p1; \n\t",
44*9880d681SAndroid Build Coastguard Worker        !strconcat("}}", ""))))),
45*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$dst, (int_nvvm_barrier0_popc Int32Regs:$pred))]>;
46*9880d681SAndroid Build Coastguard Workerdef INT_BARRIER0_AND : NVPTXInst<(outs Int32Regs:$dst), (ins Int32Regs:$pred),
47*9880d681SAndroid Build Coastguard Worker  !strconcat("{{ \n\t",
48*9880d681SAndroid Build Coastguard Worker      !strconcat(".reg .pred \t%p1; \n\t",
49*9880d681SAndroid Build Coastguard Worker      !strconcat(".reg .pred \t%p2; \n\t",
50*9880d681SAndroid Build Coastguard Worker      !strconcat("setp.ne.u32 \t%p1, $pred, 0; \n\t",
51*9880d681SAndroid Build Coastguard Worker      !strconcat("bar.red.and.pred \t%p2, 0, %p1; \n\t",
52*9880d681SAndroid Build Coastguard Worker      !strconcat("selp.u32 \t$dst, 1, 0, %p2; \n\t",
53*9880d681SAndroid Build Coastguard Worker        !strconcat("}}", ""))))))),
54*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$dst, (int_nvvm_barrier0_and Int32Regs:$pred))]>;
55*9880d681SAndroid Build Coastguard Workerdef INT_BARRIER0_OR : NVPTXInst<(outs Int32Regs:$dst), (ins Int32Regs:$pred),
56*9880d681SAndroid Build Coastguard Worker  !strconcat("{{ \n\t",
57*9880d681SAndroid Build Coastguard Worker      !strconcat(".reg .pred \t%p1; \n\t",
58*9880d681SAndroid Build Coastguard Worker      !strconcat(".reg .pred \t%p2; \n\t",
59*9880d681SAndroid Build Coastguard Worker      !strconcat("setp.ne.u32 \t%p1, $pred, 0; \n\t",
60*9880d681SAndroid Build Coastguard Worker      !strconcat("bar.red.or.pred \t%p2, 0, %p1; \n\t",
61*9880d681SAndroid Build Coastguard Worker      !strconcat("selp.u32 \t$dst, 1, 0, %p2; \n\t",
62*9880d681SAndroid Build Coastguard Worker        !strconcat("}}", ""))))))),
63*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$dst, (int_nvvm_barrier0_or Int32Regs:$pred))]>;
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Workerdef INT_BAR_SYNC : NVPTXInst<(outs), (ins i32imm:$i), "bar.sync\t$i;",
66*9880d681SAndroid Build Coastguard Worker                             [(int_nvvm_bar_sync imm:$i)]>;
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Worker// shfl.{up,down,bfly,idx}.b32
69*9880d681SAndroid Build Coastguard Workermulticlass SHFL<NVPTXRegClass regclass, string mode, Intrinsic IntOp> {
70*9880d681SAndroid Build Coastguard Worker  // The last two parameters to shfl can be regs or imms.  ptxas is smart
71*9880d681SAndroid Build Coastguard Worker  // enough to inline constant registers, so strictly speaking we don't need to
72*9880d681SAndroid Build Coastguard Worker  // handle immediates here.  But it's easy enough, and it makes our ptx more
73*9880d681SAndroid Build Coastguard Worker  // readable.
74*9880d681SAndroid Build Coastguard Worker  def reg : NVPTXInst<
75*9880d681SAndroid Build Coastguard Worker      (outs regclass:$dst),
76*9880d681SAndroid Build Coastguard Worker      (ins regclass:$src, Int32Regs:$offset, Int32Regs:$mask),
77*9880d681SAndroid Build Coastguard Worker      !strconcat("shfl.", mode, ".b32 $dst, $src, $offset, $mask;"),
78*9880d681SAndroid Build Coastguard Worker      [(set regclass:$dst, (IntOp regclass:$src, Int32Regs:$offset, Int32Regs:$mask))]>;
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Worker  def imm1 : NVPTXInst<
81*9880d681SAndroid Build Coastguard Worker      (outs regclass:$dst),
82*9880d681SAndroid Build Coastguard Worker      (ins regclass:$src, i32imm:$offset, Int32Regs:$mask),
83*9880d681SAndroid Build Coastguard Worker      !strconcat("shfl.", mode, ".b32 $dst, $src, $offset, $mask;"),
84*9880d681SAndroid Build Coastguard Worker      [(set regclass:$dst, (IntOp regclass:$src, imm:$offset, Int32Regs:$mask))]>;
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Worker  def imm2 : NVPTXInst<
87*9880d681SAndroid Build Coastguard Worker      (outs regclass:$dst),
88*9880d681SAndroid Build Coastguard Worker      (ins regclass:$src, Int32Regs:$offset, i32imm:$mask),
89*9880d681SAndroid Build Coastguard Worker      !strconcat("shfl.", mode, ".b32 $dst, $src, $offset, $mask;"),
90*9880d681SAndroid Build Coastguard Worker      [(set regclass:$dst, (IntOp regclass:$src, Int32Regs:$offset, imm:$mask))]>;
91*9880d681SAndroid Build Coastguard Worker
92*9880d681SAndroid Build Coastguard Worker  def imm3 : NVPTXInst<
93*9880d681SAndroid Build Coastguard Worker      (outs regclass:$dst),
94*9880d681SAndroid Build Coastguard Worker      (ins regclass:$src, i32imm:$offset, i32imm:$mask),
95*9880d681SAndroid Build Coastguard Worker      !strconcat("shfl.", mode, ".b32 $dst, $src, $offset, $mask;"),
96*9880d681SAndroid Build Coastguard Worker      [(set regclass:$dst, (IntOp regclass:$src, imm:$offset, imm:$mask))]>;
97*9880d681SAndroid Build Coastguard Worker}
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Workerdefm INT_SHFL_DOWN_I32 : SHFL<Int32Regs, "down", int_nvvm_shfl_down_i32>;
100*9880d681SAndroid Build Coastguard Workerdefm INT_SHFL_DOWN_F32 : SHFL<Float32Regs, "down", int_nvvm_shfl_down_f32>;
101*9880d681SAndroid Build Coastguard Workerdefm INT_SHFL_UP_I32 : SHFL<Int32Regs, "up", int_nvvm_shfl_up_i32>;
102*9880d681SAndroid Build Coastguard Workerdefm INT_SHFL_UP_F32 : SHFL<Float32Regs, "up", int_nvvm_shfl_up_f32>;
103*9880d681SAndroid Build Coastguard Workerdefm INT_SHFL_BFLY_I32 : SHFL<Int32Regs, "bfly", int_nvvm_shfl_bfly_i32>;
104*9880d681SAndroid Build Coastguard Workerdefm INT_SHFL_BFLY_F32 : SHFL<Float32Regs, "bfly", int_nvvm_shfl_bfly_f32>;
105*9880d681SAndroid Build Coastguard Workerdefm INT_SHFL_IDX_I32 : SHFL<Int32Regs, "idx", int_nvvm_shfl_idx_i32>;
106*9880d681SAndroid Build Coastguard Workerdefm INT_SHFL_IDX_F32 : SHFL<Float32Regs, "idx", int_nvvm_shfl_idx_f32>;
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Worker} // isConvergent = 1
109*9880d681SAndroid Build Coastguard Worker
110*9880d681SAndroid Build Coastguard Worker
111*9880d681SAndroid Build Coastguard Worker//-----------------------------------
112*9880d681SAndroid Build Coastguard Worker// Explicit Memory Fence Functions
113*9880d681SAndroid Build Coastguard Worker//-----------------------------------
114*9880d681SAndroid Build Coastguard Workerclass MEMBAR<string StrOp, Intrinsic IntOP> :
115*9880d681SAndroid Build Coastguard Worker              NVPTXInst<(outs), (ins),
116*9880d681SAndroid Build Coastguard Worker            StrOp, [(IntOP)]>;
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Workerdef INT_MEMBAR_CTA : MEMBAR<"membar.cta;", int_nvvm_membar_cta>;
119*9880d681SAndroid Build Coastguard Workerdef INT_MEMBAR_GL  : MEMBAR<"membar.gl;",  int_nvvm_membar_gl>;
120*9880d681SAndroid Build Coastguard Workerdef INT_MEMBAR_SYS : MEMBAR<"membar.sys;", int_nvvm_membar_sys>;
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Worker//-----------------------------------
124*9880d681SAndroid Build Coastguard Worker// Math Functions
125*9880d681SAndroid Build Coastguard Worker//-----------------------------------
126*9880d681SAndroid Build Coastguard Worker
127*9880d681SAndroid Build Coastguard Worker// Map min(1.0, max(0.0, x)) to sat(x)
128*9880d681SAndroid Build Coastguard Worker// Note that max(0.0, min(x, 1.0)) cannot be mapped to sat(x) because when x is
129*9880d681SAndroid Build Coastguard Worker// NaN
130*9880d681SAndroid Build Coastguard Worker// max(0.0, min(x, 1.0)) is 1.0 while sat(x) is 0.
131*9880d681SAndroid Build Coastguard Worker// Same story for fmax, fmin.
132*9880d681SAndroid Build Coastguard Worker
133*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_fmin_f immFloat1,
134*9880d681SAndroid Build Coastguard Worker            (int_nvvm_fmax_f immFloat0, Float32Regs:$a)),
135*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtSAT)>;
136*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_fmin_f immFloat1,
137*9880d681SAndroid Build Coastguard Worker            (int_nvvm_fmax_f Float32Regs:$a, immFloat0)),
138*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtSAT)>;
139*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_fmin_f
140*9880d681SAndroid Build Coastguard Worker            (int_nvvm_fmax_f immFloat0, Float32Regs:$a), immFloat1),
141*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtSAT)>;
142*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_fmin_f
143*9880d681SAndroid Build Coastguard Worker            (int_nvvm_fmax_f Float32Regs:$a, immFloat0), immFloat1),
144*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtSAT)>;
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_fmin_d immDouble1,
147*9880d681SAndroid Build Coastguard Worker            (int_nvvm_fmax_d immDouble0, Float64Regs:$a)),
148*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtSAT)>;
149*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_fmin_d immDouble1,
150*9880d681SAndroid Build Coastguard Worker            (int_nvvm_fmax_d Float64Regs:$a, immDouble0)),
151*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtSAT)>;
152*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_fmin_d
153*9880d681SAndroid Build Coastguard Worker            (int_nvvm_fmax_d immDouble0, Float64Regs:$a), immDouble1),
154*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtSAT)>;
155*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_fmin_d
156*9880d681SAndroid Build Coastguard Worker            (int_nvvm_fmax_d Float64Regs:$a, immDouble0), immDouble1),
157*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtSAT)>;
158*9880d681SAndroid Build Coastguard Worker
159*9880d681SAndroid Build Coastguard Worker
160*9880d681SAndroid Build Coastguard Worker// We need a full string for OpcStr here because we need to deal with case like
161*9880d681SAndroid Build Coastguard Worker// INT_PTX_RECIP.
162*9880d681SAndroid Build Coastguard Workerclass F_MATH_1<string OpcStr, NVPTXRegClass target_regclass,
163*9880d681SAndroid Build Coastguard Worker  NVPTXRegClass src_regclass, Intrinsic IntOP>
164*9880d681SAndroid Build Coastguard Worker            : NVPTXInst<(outs target_regclass:$dst), (ins src_regclass:$src0),
165*9880d681SAndroid Build Coastguard Worker            OpcStr,
166*9880d681SAndroid Build Coastguard Worker        [(set target_regclass:$dst, (IntOP src_regclass:$src0))]>;
167*9880d681SAndroid Build Coastguard Worker
168*9880d681SAndroid Build Coastguard Worker// We need a full string for OpcStr here because we need to deal with the case
169*9880d681SAndroid Build Coastguard Worker// like INT_PTX_NATIVE_POWR_F.
170*9880d681SAndroid Build Coastguard Workerclass F_MATH_2<string OpcStr, NVPTXRegClass t_regclass,
171*9880d681SAndroid Build Coastguard Worker  NVPTXRegClass s0_regclass, NVPTXRegClass s1_regclass, Intrinsic IntOP>
172*9880d681SAndroid Build Coastguard Worker            : NVPTXInst<(outs t_regclass:$dst),
173*9880d681SAndroid Build Coastguard Worker              (ins s0_regclass:$src0, s1_regclass:$src1),
174*9880d681SAndroid Build Coastguard Worker            OpcStr,
175*9880d681SAndroid Build Coastguard Worker        [(set t_regclass:$dst, (IntOP s0_regclass:$src0, s1_regclass:$src1))]>;
176*9880d681SAndroid Build Coastguard Worker
177*9880d681SAndroid Build Coastguard Workerclass F_MATH_3<string OpcStr, NVPTXRegClass t_regclass,
178*9880d681SAndroid Build Coastguard Worker  NVPTXRegClass s0_regclass, NVPTXRegClass s1_regclass,
179*9880d681SAndroid Build Coastguard Worker  NVPTXRegClass s2_regclass, Intrinsic IntOP>
180*9880d681SAndroid Build Coastguard Worker            : NVPTXInst<(outs t_regclass:$dst),
181*9880d681SAndroid Build Coastguard Worker              (ins s0_regclass:$src0, s1_regclass:$src1, s2_regclass:$src2),
182*9880d681SAndroid Build Coastguard Worker            OpcStr,
183*9880d681SAndroid Build Coastguard Worker        [(set t_regclass:$dst,
184*9880d681SAndroid Build Coastguard Worker          (IntOP s0_regclass:$src0, s1_regclass:$src1, s2_regclass:$src2))]>;
185*9880d681SAndroid Build Coastguard Worker
186*9880d681SAndroid Build Coastguard Worker//
187*9880d681SAndroid Build Coastguard Worker// MISC
188*9880d681SAndroid Build Coastguard Worker//
189*9880d681SAndroid Build Coastguard Worker
190*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_CLZ_I : F_MATH_1<"clz.b32 \t$dst, $src0;", Int32Regs, Int32Regs,
191*9880d681SAndroid Build Coastguard Worker  int_nvvm_clz_i>;
192*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_CLZ_LL : F_MATH_1<"clz.b64 \t$dst, $src0;", Int32Regs, Int64Regs,
193*9880d681SAndroid Build Coastguard Worker  int_nvvm_clz_ll>;
194*9880d681SAndroid Build Coastguard Worker
195*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_POPC_I : F_MATH_1<"popc.b32 \t$dst, $src0;", Int32Regs, Int32Regs,
196*9880d681SAndroid Build Coastguard Worker  int_nvvm_popc_i>;
197*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_POPC_LL : F_MATH_1<"popc.b64 \t$dst, $src0;", Int32Regs, Int64Regs,
198*9880d681SAndroid Build Coastguard Worker  int_nvvm_popc_ll>;
199*9880d681SAndroid Build Coastguard Worker
200*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_PRMT : F_MATH_3<"prmt.b32 \t$dst, $src0, $src1, $src2;", Int32Regs,
201*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, Int32Regs, int_nvvm_prmt>;
202*9880d681SAndroid Build Coastguard Worker
203*9880d681SAndroid Build Coastguard Worker//
204*9880d681SAndroid Build Coastguard Worker// Min Max
205*9880d681SAndroid Build Coastguard Worker//
206*9880d681SAndroid Build Coastguard Worker
207*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MIN_I : F_MATH_2<"min.s32 \t$dst, $src0, $src1;", Int32Regs,
208*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, int_nvvm_min_i>;
209*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MIN_UI : F_MATH_2<"min.u32 \t$dst, $src0, $src1;", Int32Regs,
210*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, int_nvvm_min_ui>;
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MIN_LL : F_MATH_2<"min.s64 \t$dst, $src0, $src1;", Int64Regs,
213*9880d681SAndroid Build Coastguard Worker  Int64Regs, Int64Regs, int_nvvm_min_ll>;
214*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MIN_ULL : F_MATH_2<"min.u64 \t$dst, $src0, $src1;", Int64Regs,
215*9880d681SAndroid Build Coastguard Worker  Int64Regs, Int64Regs, int_nvvm_min_ull>;
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MAX_I : F_MATH_2<"max.s32 \t$dst, $src0, $src1;", Int32Regs,
218*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, int_nvvm_max_i>;
219*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MAX_UI : F_MATH_2<"max.u32 \t$dst, $src0, $src1;", Int32Regs,
220*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, int_nvvm_max_ui>;
221*9880d681SAndroid Build Coastguard Worker
222*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MAX_LL : F_MATH_2<"max.s64 \t$dst, $src0, $src1;", Int64Regs,
223*9880d681SAndroid Build Coastguard Worker  Int64Regs, Int64Regs, int_nvvm_max_ll>;
224*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MAX_ULL : F_MATH_2<"max.u64 \t$dst, $src0, $src1;", Int64Regs,
225*9880d681SAndroid Build Coastguard Worker  Int64Regs, Int64Regs, int_nvvm_max_ull>;
226*9880d681SAndroid Build Coastguard Worker
227*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMIN_F : F_MATH_2<"min.f32 \t$dst, $src0, $src1;", Float32Regs,
228*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_fmin_f>;
229*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMIN_FTZ_F : F_MATH_2<"min.ftz.f32 \t$dst, $src0, $src1;",
230*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_fmin_ftz_f>;
231*9880d681SAndroid Build Coastguard Worker
232*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMAX_F : F_MATH_2<"max.f32 \t$dst, $src0, $src1;", Float32Regs,
233*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_fmax_f>;
234*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMAX_FTZ_F : F_MATH_2<"max.ftz.f32 \t$dst, $src0, $src1;",
235*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_fmax_ftz_f>;
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMIN_D : F_MATH_2<"min.f64 \t$dst, $src0, $src1;", Float64Regs,
238*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, int_nvvm_fmin_d>;
239*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMAX_D : F_MATH_2<"max.f64 \t$dst, $src0, $src1;", Float64Regs,
240*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, int_nvvm_fmax_d>;
241*9880d681SAndroid Build Coastguard Worker
242*9880d681SAndroid Build Coastguard Worker//
243*9880d681SAndroid Build Coastguard Worker// Multiplication
244*9880d681SAndroid Build Coastguard Worker//
245*9880d681SAndroid Build Coastguard Worker
246*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MULHI_I : F_MATH_2<"mul.hi.s32 \t$dst, $src0, $src1;", Int32Regs,
247*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, int_nvvm_mulhi_i>;
248*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MULHI_UI : F_MATH_2<"mul.hi.u32 \t$dst, $src0, $src1;", Int32Regs,
249*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, int_nvvm_mulhi_ui>;
250*9880d681SAndroid Build Coastguard Worker
251*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MULHI_LL : F_MATH_2<"mul.hi.s64 \t$dst, $src0, $src1;", Int64Regs,
252*9880d681SAndroid Build Coastguard Worker  Int64Regs, Int64Regs, int_nvvm_mulhi_ll>;
253*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MULHI_ULL : F_MATH_2<"mul.hi.u64 \t$dst, $src0, $src1;", Int64Regs,
254*9880d681SAndroid Build Coastguard Worker  Int64Regs, Int64Regs, int_nvvm_mulhi_ull>;
255*9880d681SAndroid Build Coastguard Worker
256*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RN_FTZ_F : F_MATH_2<"mul.rn.ftz.f32 \t$dst, $src0, $src1;",
257*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_mul_rn_ftz_f>;
258*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RN_F : F_MATH_2<"mul.rn.f32 \t$dst, $src0, $src1;",
259*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_mul_rn_f>;
260*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RZ_FTZ_F : F_MATH_2<"mul.rz.ftz.f32 \t$dst, $src0, $src1;",
261*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_mul_rz_ftz_f>;
262*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RZ_F : F_MATH_2<"mul.rz.f32 \t$dst, $src0, $src1;",
263*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_mul_rz_f>;
264*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RM_FTZ_F : F_MATH_2<"mul.rm.ftz.f32 \t$dst, $src0, $src1;",
265*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_mul_rm_ftz_f>;
266*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RM_F : F_MATH_2<"mul.rm.f32 \t$dst, $src0, $src1;",
267*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_mul_rm_f>;
268*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RP_FTZ_F : F_MATH_2<"mul.rp.ftz.f32 \t$dst, $src0, $src1;",
269*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_mul_rp_ftz_f>;
270*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RP_F : F_MATH_2<"mul.rp.f32 \t$dst, $src0, $src1;",
271*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_mul_rp_f>;
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RN_D : F_MATH_2<"mul.rn.f64 \t$dst, $src0, $src1;",
274*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_mul_rn_d>;
275*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RZ_D : F_MATH_2<"mul.rz.f64 \t$dst, $src0, $src1;",
276*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_mul_rz_d>;
277*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RM_D : F_MATH_2<"mul.rm.f64 \t$dst, $src0, $src1;",
278*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_mul_rm_d>;
279*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL_RP_D : F_MATH_2<"mul.rp.f64 \t$dst, $src0, $src1;",
280*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_mul_rp_d>;
281*9880d681SAndroid Build Coastguard Worker
282*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL24_I : F_MATH_2<"mul24.lo.s32 \t$dst, $src0, $src1;",
283*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, Int32Regs, int_nvvm_mul24_i>;
284*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_MUL24_UI : F_MATH_2<"mul24.lo.u32 \t$dst, $src0, $src1;",
285*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, Int32Regs, int_nvvm_mul24_ui>;
286*9880d681SAndroid Build Coastguard Worker
287*9880d681SAndroid Build Coastguard Worker//
288*9880d681SAndroid Build Coastguard Worker// Div
289*9880d681SAndroid Build Coastguard Worker//
290*9880d681SAndroid Build Coastguard Worker
291*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_APPROX_FTZ_F
292*9880d681SAndroid Build Coastguard Worker  : F_MATH_2<"div.approx.ftz.f32 \t$dst, $src0, $src1;", Float32Regs,
293*9880d681SAndroid Build Coastguard Worker    Float32Regs, Float32Regs, int_nvvm_div_approx_ftz_f>;
294*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_APPROX_F : F_MATH_2<"div.approx.f32 \t$dst, $src0, $src1;",
295*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_approx_f>;
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RN_FTZ_F : F_MATH_2<"div.rn.ftz.f32 \t$dst, $src0, $src1;",
298*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_rn_ftz_f>;
299*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RN_F     : F_MATH_2<"div.rn.f32 \t$dst, $src0, $src1;",
300*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_rn_f>;
301*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RZ_FTZ_F : F_MATH_2<"div.rz.ftz.f32 \t$dst, $src0, $src1;",
302*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_rz_ftz_f>;
303*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RZ_F     : F_MATH_2<"div.rz.f32 \t$dst, $src0, $src1;",
304*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_rz_f>;
305*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RM_FTZ_F : F_MATH_2<"div.rm.ftz.f32 \t$dst, $src0, $src1;",
306*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_rm_ftz_f>;
307*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RM_F     : F_MATH_2<"div.rm.f32 \t$dst, $src0, $src1;",
308*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_rm_f>;
309*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RP_FTZ_F : F_MATH_2<"div.rp.ftz.f32 \t$dst, $src0, $src1;",
310*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_rp_ftz_f>;
311*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RP_F     : F_MATH_2<"div.rp.f32 \t$dst, $src0, $src1;",
312*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_div_rp_f>;
313*9880d681SAndroid Build Coastguard Worker
314*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RN_D : F_MATH_2<"div.rn.f64 \t$dst, $src0, $src1;",
315*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_div_rn_d>;
316*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RZ_D : F_MATH_2<"div.rz.f64 \t$dst, $src0, $src1;",
317*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_div_rz_d>;
318*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RM_D : F_MATH_2<"div.rm.f64 \t$dst, $src0, $src1;",
319*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_div_rm_d>;
320*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_DIV_RP_D : F_MATH_2<"div.rp.f64 \t$dst, $src0, $src1;",
321*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_div_rp_d>;
322*9880d681SAndroid Build Coastguard Worker
323*9880d681SAndroid Build Coastguard Worker//
324*9880d681SAndroid Build Coastguard Worker// Brev
325*9880d681SAndroid Build Coastguard Worker//
326*9880d681SAndroid Build Coastguard Worker
327*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_BREV32 : F_MATH_1<"brev.b32 \t$dst, $src0;", Int32Regs, Int32Regs,
328*9880d681SAndroid Build Coastguard Worker  int_nvvm_brev32>;
329*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_BREV64 : F_MATH_1<"brev.b64 \t$dst, $src0;", Int64Regs, Int64Regs,
330*9880d681SAndroid Build Coastguard Worker  int_nvvm_brev64>;
331*9880d681SAndroid Build Coastguard Worker
332*9880d681SAndroid Build Coastguard Worker//
333*9880d681SAndroid Build Coastguard Worker// Sad
334*9880d681SAndroid Build Coastguard Worker//
335*9880d681SAndroid Build Coastguard Worker
336*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SAD_I : F_MATH_3<"sad.s32 \t$dst, $src0, $src1, $src2;",
337*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, Int32Regs, Int32Regs, int_nvvm_sad_i>;
338*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SAD_UI : F_MATH_3<"sad.u32 \t$dst, $src0, $src1, $src2;",
339*9880d681SAndroid Build Coastguard Worker  Int32Regs, Int32Regs, Int32Regs, Int32Regs, int_nvvm_sad_ui>;
340*9880d681SAndroid Build Coastguard Worker
341*9880d681SAndroid Build Coastguard Worker//
342*9880d681SAndroid Build Coastguard Worker// Floor  Ceil
343*9880d681SAndroid Build Coastguard Worker//
344*9880d681SAndroid Build Coastguard Worker
345*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_floor_ftz_f Float32Regs:$a),
346*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtRMI_FTZ)>;
347*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_floor_f Float32Regs:$a),
348*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtRMI)>;
349*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_floor_d Float64Regs:$a),
350*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtRMI)>;
351*9880d681SAndroid Build Coastguard Worker
352*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ceil_ftz_f Float32Regs:$a),
353*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtRPI_FTZ)>;
354*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ceil_f Float32Regs:$a),
355*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtRPI)>;
356*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ceil_d Float64Regs:$a),
357*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtRPI)>;
358*9880d681SAndroid Build Coastguard Worker
359*9880d681SAndroid Build Coastguard Worker//
360*9880d681SAndroid Build Coastguard Worker// Abs
361*9880d681SAndroid Build Coastguard Worker//
362*9880d681SAndroid Build Coastguard Worker
363*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ABS_I : F_MATH_1<"abs.s32 \t$dst, $src0;", Int32Regs, Int32Regs,
364*9880d681SAndroid Build Coastguard Worker  int_nvvm_abs_i>;
365*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ABS_LL : F_MATH_1<"abs.s64 \t$dst, $src0;", Int64Regs, Int64Regs,
366*9880d681SAndroid Build Coastguard Worker  int_nvvm_abs_ll>;
367*9880d681SAndroid Build Coastguard Worker
368*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FABS_FTZ_F : F_MATH_1<"abs.ftz.f32 \t$dst, $src0;", Float32Regs,
369*9880d681SAndroid Build Coastguard Worker  Float32Regs, int_nvvm_fabs_ftz_f>;
370*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FABS_F : F_MATH_1<"abs.f32 \t$dst, $src0;", Float32Regs,
371*9880d681SAndroid Build Coastguard Worker  Float32Regs, int_nvvm_fabs_f>;
372*9880d681SAndroid Build Coastguard Worker
373*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FABS_D : F_MATH_1<"abs.f64 \t$dst, $src0;", Float64Regs,
374*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_fabs_d>;
375*9880d681SAndroid Build Coastguard Worker
376*9880d681SAndroid Build Coastguard Worker//
377*9880d681SAndroid Build Coastguard Worker// Round
378*9880d681SAndroid Build Coastguard Worker//
379*9880d681SAndroid Build Coastguard Worker
380*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_round_ftz_f Float32Regs:$a),
381*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtRNI_FTZ)>;
382*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_round_f Float32Regs:$a),
383*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtRNI)>;
384*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_round_d Float64Regs:$a),
385*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtRNI)>;
386*9880d681SAndroid Build Coastguard Worker
387*9880d681SAndroid Build Coastguard Worker//
388*9880d681SAndroid Build Coastguard Worker// Trunc
389*9880d681SAndroid Build Coastguard Worker//
390*9880d681SAndroid Build Coastguard Worker
391*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_trunc_ftz_f Float32Regs:$a),
392*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtRZI_FTZ)>;
393*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_trunc_f Float32Regs:$a),
394*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtRZI)>;
395*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_trunc_d Float64Regs:$a),
396*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtRZI)>;
397*9880d681SAndroid Build Coastguard Worker
398*9880d681SAndroid Build Coastguard Worker//
399*9880d681SAndroid Build Coastguard Worker// Saturate
400*9880d681SAndroid Build Coastguard Worker//
401*9880d681SAndroid Build Coastguard Worker
402*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_saturate_ftz_f Float32Regs:$a),
403*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtSAT_FTZ)>;
404*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_saturate_f Float32Regs:$a),
405*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f32 Float32Regs:$a, CvtSAT)>;
406*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_saturate_d Float64Regs:$a),
407*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f64 Float64Regs:$a, CvtSAT)>;
408*9880d681SAndroid Build Coastguard Worker
409*9880d681SAndroid Build Coastguard Worker//
410*9880d681SAndroid Build Coastguard Worker// Exp2  Log2
411*9880d681SAndroid Build Coastguard Worker//
412*9880d681SAndroid Build Coastguard Worker
413*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_EX2_APPROX_FTZ_F : F_MATH_1<"ex2.approx.ftz.f32 \t$dst, $src0;",
414*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_ex2_approx_ftz_f>;
415*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_EX2_APPROX_F : F_MATH_1<"ex2.approx.f32 \t$dst, $src0;",
416*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_ex2_approx_f>;
417*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_EX2_APPROX_D : F_MATH_1<"ex2.approx.f64 \t$dst, $src0;",
418*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, int_nvvm_ex2_approx_d>;
419*9880d681SAndroid Build Coastguard Worker
420*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_LG2_APPROX_FTZ_F : F_MATH_1<"lg2.approx.ftz.f32 \t$dst, $src0;",
421*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_lg2_approx_ftz_f>;
422*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_LG2_APPROX_F : F_MATH_1<"lg2.approx.f32 \t$dst, $src0;",
423*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_lg2_approx_f>;
424*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_LG2_APPROX_D : F_MATH_1<"lg2.approx.f64 \t$dst, $src0;",
425*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, int_nvvm_lg2_approx_d>;
426*9880d681SAndroid Build Coastguard Worker
427*9880d681SAndroid Build Coastguard Worker//
428*9880d681SAndroid Build Coastguard Worker// Sin  Cos
429*9880d681SAndroid Build Coastguard Worker//
430*9880d681SAndroid Build Coastguard Worker
431*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SIN_APPROX_FTZ_F : F_MATH_1<"sin.approx.ftz.f32 \t$dst, $src0;",
432*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_sin_approx_ftz_f>;
433*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SIN_APPROX_F : F_MATH_1<"sin.approx.f32 \t$dst, $src0;",
434*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_sin_approx_f>;
435*9880d681SAndroid Build Coastguard Worker
436*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_COS_APPROX_FTZ_F : F_MATH_1<"cos.approx.ftz.f32 \t$dst, $src0;",
437*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_cos_approx_ftz_f>;
438*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_COS_APPROX_F : F_MATH_1<"cos.approx.f32 \t$dst, $src0;",
439*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_cos_approx_f>;
440*9880d681SAndroid Build Coastguard Worker
441*9880d681SAndroid Build Coastguard Worker//
442*9880d681SAndroid Build Coastguard Worker// Fma
443*9880d681SAndroid Build Coastguard Worker//
444*9880d681SAndroid Build Coastguard Worker
445*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RN_FTZ_F
446*9880d681SAndroid Build Coastguard Worker  : F_MATH_3<"fma.rn.ftz.f32 \t$dst, $src0, $src1, $src2;", Float32Regs,
447*9880d681SAndroid Build Coastguard Worker    Float32Regs, Float32Regs, Float32Regs, int_nvvm_fma_rn_ftz_f>;
448*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RN_F : F_MATH_3<"fma.rn.f32 \t$dst, $src0, $src1, $src2;",
449*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, Float32Regs, int_nvvm_fma_rn_f>;
450*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RZ_FTZ_F
451*9880d681SAndroid Build Coastguard Worker  : F_MATH_3<"fma.rz.ftz.f32 \t$dst, $src0, $src1, $src2;", Float32Regs,
452*9880d681SAndroid Build Coastguard Worker    Float32Regs, Float32Regs, Float32Regs, int_nvvm_fma_rz_ftz_f>;
453*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RZ_F : F_MATH_3<"fma.rz.f32 \t$dst, $src0, $src1, $src2;",
454*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, Float32Regs, int_nvvm_fma_rz_f>;
455*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RM_FTZ_F
456*9880d681SAndroid Build Coastguard Worker  : F_MATH_3<"fma.rm.ftz.f32 \t$dst, $src0, $src1, $src2;", Float32Regs,
457*9880d681SAndroid Build Coastguard Worker    Float32Regs, Float32Regs, Float32Regs, int_nvvm_fma_rm_ftz_f>;
458*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RM_F : F_MATH_3<"fma.rm.f32 \t$dst, $src0, $src1, $src2;",
459*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, Float32Regs, int_nvvm_fma_rm_f>;
460*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RP_FTZ_F
461*9880d681SAndroid Build Coastguard Worker  : F_MATH_3<"fma.rp.ftz.f32 \t$dst, $src0, $src1, $src2;", Float32Regs,
462*9880d681SAndroid Build Coastguard Worker    Float32Regs, Float32Regs, Float32Regs, int_nvvm_fma_rp_ftz_f>;
463*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RP_F : F_MATH_3<"fma.rp.f32 \t$dst, $src0, $src1, $src2;",
464*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, Float32Regs, int_nvvm_fma_rp_f>;
465*9880d681SAndroid Build Coastguard Worker
466*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RN_D : F_MATH_3<"fma.rn.f64 \t$dst, $src0, $src1, $src2;",
467*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, Float64Regs, int_nvvm_fma_rn_d>;
468*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RZ_D : F_MATH_3<"fma.rz.f64 \t$dst, $src0, $src1, $src2;",
469*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, Float64Regs, int_nvvm_fma_rz_d>;
470*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RM_D : F_MATH_3<"fma.rm.f64 \t$dst, $src0, $src1, $src2;",
471*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, Float64Regs, int_nvvm_fma_rm_d>;
472*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_FMA_RP_D : F_MATH_3<"fma.rp.f64 \t$dst, $src0, $src1, $src2;",
473*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, Float64Regs, int_nvvm_fma_rp_d>;
474*9880d681SAndroid Build Coastguard Worker
475*9880d681SAndroid Build Coastguard Worker//
476*9880d681SAndroid Build Coastguard Worker// Rcp
477*9880d681SAndroid Build Coastguard Worker//
478*9880d681SAndroid Build Coastguard Worker
479*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RN_FTZ_F : F_MATH_1<"rcp.rn.ftz.f32 \t$dst, $src0;",
480*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rcp_rn_ftz_f>;
481*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RN_F : F_MATH_1<"rcp.rn.f32 \t$dst, $src0;",
482*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rcp_rn_f>;
483*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RZ_FTZ_F : F_MATH_1<"rcp.rz.ftz.f32 \t$dst, $src0;",
484*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rcp_rz_ftz_f>;
485*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RZ_F : F_MATH_1<"rcp.rz.f32 \t$dst, $src0;",
486*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rcp_rz_f>;
487*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RM_FTZ_F : F_MATH_1<"rcp.rm.ftz.f32 \t$dst, $src0;",
488*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rcp_rm_ftz_f>;
489*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RM_F : F_MATH_1<"rcp.rm.f32 \t$dst, $src0;",
490*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rcp_rm_f>;
491*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RP_FTZ_F : F_MATH_1<"rcp.rp.ftz.f32 \t$dst, $src0;",
492*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rcp_rp_ftz_f>;
493*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RP_F : F_MATH_1<"rcp.rp.f32 \t$dst, $src0;",
494*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rcp_rp_f>;
495*9880d681SAndroid Build Coastguard Worker
496*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RN_D : F_MATH_1<"rcp.rn.f64 \t$dst, $src0;", Float64Regs,
497*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_rcp_rn_d>;
498*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RZ_D : F_MATH_1<"rcp.rz.f64 \t$dst, $src0;", Float64Regs,
499*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_rcp_rz_d>;
500*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RM_D : F_MATH_1<"rcp.rm.f64 \t$dst, $src0;", Float64Regs,
501*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_rcp_rm_d>;
502*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_RP_D : F_MATH_1<"rcp.rp.f64 \t$dst, $src0;", Float64Regs,
503*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_rcp_rp_d>;
504*9880d681SAndroid Build Coastguard Worker
505*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RCP_APPROX_FTZ_D : F_MATH_1<"rcp.approx.ftz.f64 \t$dst, $src0;",
506*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, int_nvvm_rcp_approx_ftz_d>;
507*9880d681SAndroid Build Coastguard Worker
508*9880d681SAndroid Build Coastguard Worker//
509*9880d681SAndroid Build Coastguard Worker// Sqrt
510*9880d681SAndroid Build Coastguard Worker//
511*9880d681SAndroid Build Coastguard Worker
512*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RN_FTZ_F : F_MATH_1<"sqrt.rn.ftz.f32 \t$dst, $src0;",
513*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_sqrt_rn_ftz_f>;
514*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RN_F : F_MATH_1<"sqrt.rn.f32 \t$dst, $src0;", Float32Regs,
515*9880d681SAndroid Build Coastguard Worker  Float32Regs, int_nvvm_sqrt_rn_f>;
516*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RZ_FTZ_F : F_MATH_1<"sqrt.rz.ftz.f32 \t$dst, $src0;",
517*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_sqrt_rz_ftz_f>;
518*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RZ_F : F_MATH_1<"sqrt.rz.f32 \t$dst, $src0;", Float32Regs,
519*9880d681SAndroid Build Coastguard Worker  Float32Regs, int_nvvm_sqrt_rz_f>;
520*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RM_FTZ_F : F_MATH_1<"sqrt.rm.ftz.f32 \t$dst, $src0;",
521*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_sqrt_rm_ftz_f>;
522*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RM_F : F_MATH_1<"sqrt.rm.f32 \t$dst, $src0;", Float32Regs,
523*9880d681SAndroid Build Coastguard Worker  Float32Regs, int_nvvm_sqrt_rm_f>;
524*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RP_FTZ_F : F_MATH_1<"sqrt.rp.ftz.f32 \t$dst, $src0;",
525*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_sqrt_rp_ftz_f>;
526*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RP_F : F_MATH_1<"sqrt.rp.f32 \t$dst, $src0;", Float32Regs,
527*9880d681SAndroid Build Coastguard Worker  Float32Regs, int_nvvm_sqrt_rp_f>;
528*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_APPROX_FTZ_F : F_MATH_1<"sqrt.approx.ftz.f32 \t$dst, $src0;",
529*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_sqrt_approx_ftz_f>;
530*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_APPROX_F : F_MATH_1<"sqrt.approx.f32 \t$dst, $src0;",
531*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_sqrt_approx_f>;
532*9880d681SAndroid Build Coastguard Worker
533*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RN_D : F_MATH_1<"sqrt.rn.f64 \t$dst, $src0;", Float64Regs,
534*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_sqrt_rn_d>;
535*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RZ_D : F_MATH_1<"sqrt.rz.f64 \t$dst, $src0;", Float64Regs,
536*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_sqrt_rz_d>;
537*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RM_D : F_MATH_1<"sqrt.rm.f64 \t$dst, $src0;", Float64Regs,
538*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_sqrt_rm_d>;
539*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_SQRT_RP_D : F_MATH_1<"sqrt.rp.f64 \t$dst, $src0;", Float64Regs,
540*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_sqrt_rp_d>;
541*9880d681SAndroid Build Coastguard Worker
542*9880d681SAndroid Build Coastguard Worker// nvvm_sqrt intrinsic
543*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sqrt_f Float32Regs:$a),
544*9880d681SAndroid Build Coastguard Worker          (INT_NVVM_SQRT_RN_FTZ_F Float32Regs:$a)>, Requires<[doF32FTZ, do_SQRTF32_RN]>;
545*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sqrt_f Float32Regs:$a),
546*9880d681SAndroid Build Coastguard Worker          (INT_NVVM_SQRT_RN_F Float32Regs:$a)>, Requires<[do_SQRTF32_RN]>;
547*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sqrt_f Float32Regs:$a),
548*9880d681SAndroid Build Coastguard Worker          (INT_NVVM_SQRT_APPROX_FTZ_F Float32Regs:$a)>, Requires<[doF32FTZ]>;
549*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sqrt_f Float32Regs:$a),
550*9880d681SAndroid Build Coastguard Worker          (INT_NVVM_SQRT_APPROX_F Float32Regs:$a)>;
551*9880d681SAndroid Build Coastguard Worker
552*9880d681SAndroid Build Coastguard Worker//
553*9880d681SAndroid Build Coastguard Worker// Rsqrt
554*9880d681SAndroid Build Coastguard Worker//
555*9880d681SAndroid Build Coastguard Worker
556*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RSQRT_APPROX_FTZ_F
557*9880d681SAndroid Build Coastguard Worker  : F_MATH_1<"rsqrt.approx.ftz.f32 \t$dst, $src0;", Float32Regs, Float32Regs,
558*9880d681SAndroid Build Coastguard Worker    int_nvvm_rsqrt_approx_ftz_f>;
559*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RSQRT_APPROX_F : F_MATH_1<"rsqrt.approx.f32 \t$dst, $src0;",
560*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, int_nvvm_rsqrt_approx_f>;
561*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_RSQRT_APPROX_D : F_MATH_1<"rsqrt.approx.f64 \t$dst, $src0;",
562*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, int_nvvm_rsqrt_approx_d>;
563*9880d681SAndroid Build Coastguard Worker
564*9880d681SAndroid Build Coastguard Worker//
565*9880d681SAndroid Build Coastguard Worker// Add
566*9880d681SAndroid Build Coastguard Worker//
567*9880d681SAndroid Build Coastguard Worker
568*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RN_FTZ_F : F_MATH_2<"add.rn.ftz.f32 \t$dst, $src0, $src1;",
569*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_add_rn_ftz_f>;
570*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RN_F : F_MATH_2<"add.rn.f32 \t$dst, $src0, $src1;",
571*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_add_rn_f>;
572*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RZ_FTZ_F : F_MATH_2<"add.rz.ftz.f32 \t$dst, $src0, $src1;",
573*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_add_rz_ftz_f>;
574*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RZ_F : F_MATH_2<"add.rz.f32 \t$dst, $src0, $src1;",
575*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_add_rz_f>;
576*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RM_FTZ_F : F_MATH_2<"add.rm.ftz.f32 \t$dst, $src0, $src1;",
577*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_add_rm_ftz_f>;
578*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RM_F : F_MATH_2<"add.rm.f32 \t$dst, $src0, $src1;",
579*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_add_rm_f>;
580*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RP_FTZ_F : F_MATH_2<"add.rp.ftz.f32 \t$dst, $src0, $src1;",
581*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_add_rp_ftz_f>;
582*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RP_F : F_MATH_2<"add.rp.f32 \t$dst, $src0, $src1;",
583*9880d681SAndroid Build Coastguard Worker  Float32Regs, Float32Regs, Float32Regs, int_nvvm_add_rp_f>;
584*9880d681SAndroid Build Coastguard Worker
585*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RN_D : F_MATH_2<"add.rn.f64 \t$dst, $src0, $src1;",
586*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_add_rn_d>;
587*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RZ_D : F_MATH_2<"add.rz.f64 \t$dst, $src0, $src1;",
588*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_add_rz_d>;
589*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RM_D : F_MATH_2<"add.rm.f64 \t$dst, $src0, $src1;",
590*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_add_rm_d>;
591*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_ADD_RP_D : F_MATH_2<"add.rp.f64 \t$dst, $src0, $src1;",
592*9880d681SAndroid Build Coastguard Worker  Float64Regs, Float64Regs, Float64Regs, int_nvvm_add_rp_d>;
593*9880d681SAndroid Build Coastguard Worker
594*9880d681SAndroid Build Coastguard Worker//
595*9880d681SAndroid Build Coastguard Worker// Convert
596*9880d681SAndroid Build Coastguard Worker//
597*9880d681SAndroid Build Coastguard Worker
598*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2f_rn_ftz Float64Regs:$a),
599*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f64 Float64Regs:$a, CvtRN_FTZ)>;
600*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2f_rn Float64Regs:$a),
601*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f64 Float64Regs:$a, CvtRN)>;
602*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2f_rz_ftz Float64Regs:$a),
603*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f64 Float64Regs:$a, CvtRZ_FTZ)>;
604*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2f_rz Float64Regs:$a),
605*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f64 Float64Regs:$a, CvtRZ)>;
606*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2f_rm_ftz Float64Regs:$a),
607*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f64 Float64Regs:$a, CvtRM_FTZ)>;
608*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2f_rm Float64Regs:$a),
609*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f64 Float64Regs:$a, CvtRM)>;
610*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2f_rp_ftz Float64Regs:$a),
611*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f64 Float64Regs:$a, CvtRP_FTZ)>;
612*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2f_rp Float64Regs:$a),
613*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f64 Float64Regs:$a, CvtRP)>;
614*9880d681SAndroid Build Coastguard Worker
615*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2i_rn Float64Regs:$a),
616*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f64 Float64Regs:$a, CvtRNI)>;
617*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2i_rz Float64Regs:$a),
618*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f64 Float64Regs:$a, CvtRZI)>;
619*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2i_rm Float64Regs:$a),
620*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f64 Float64Regs:$a, CvtRMI)>;
621*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2i_rp Float64Regs:$a),
622*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f64 Float64Regs:$a, CvtRPI)>;
623*9880d681SAndroid Build Coastguard Worker
624*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ui_rn Float64Regs:$a),
625*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f64 Float64Regs:$a, CvtRNI)>;
626*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ui_rz Float64Regs:$a),
627*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f64 Float64Regs:$a, CvtRZI)>;
628*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ui_rm Float64Regs:$a),
629*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f64 Float64Regs:$a, CvtRMI)>;
630*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ui_rp Float64Regs:$a),
631*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f64 Float64Regs:$a, CvtRPI)>;
632*9880d681SAndroid Build Coastguard Worker
633*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_i2d_rn Int32Regs:$a),
634*9880d681SAndroid Build Coastguard Worker          (CVT_f64_s32 Int32Regs:$a, CvtRN)>;
635*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_i2d_rz Int32Regs:$a),
636*9880d681SAndroid Build Coastguard Worker          (CVT_f64_s32 Int32Regs:$a, CvtRZ)>;
637*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_i2d_rm Int32Regs:$a),
638*9880d681SAndroid Build Coastguard Worker          (CVT_f64_s32 Int32Regs:$a, CvtRM)>;
639*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_i2d_rp Int32Regs:$a),
640*9880d681SAndroid Build Coastguard Worker          (CVT_f64_s32 Int32Regs:$a, CvtRP)>;
641*9880d681SAndroid Build Coastguard Worker
642*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ui2d_rn Int32Regs:$a),
643*9880d681SAndroid Build Coastguard Worker          (CVT_f64_u32 Int32Regs:$a, CvtRN)>;
644*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ui2d_rz Int32Regs:$a),
645*9880d681SAndroid Build Coastguard Worker          (CVT_f64_u32 Int32Regs:$a, CvtRZ)>;
646*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ui2d_rm Int32Regs:$a),
647*9880d681SAndroid Build Coastguard Worker          (CVT_f64_u32 Int32Regs:$a, CvtRM)>;
648*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ui2d_rp Int32Regs:$a),
649*9880d681SAndroid Build Coastguard Worker          (CVT_f64_u32 Int32Regs:$a, CvtRP)>;
650*9880d681SAndroid Build Coastguard Worker
651*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2i_rn_ftz Float32Regs:$a),
652*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f32 Float32Regs:$a, CvtRNI_FTZ)>;
653*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2i_rn Float32Regs:$a),
654*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f32 Float32Regs:$a, CvtRNI)>;
655*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2i_rz_ftz Float32Regs:$a),
656*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f32 Float32Regs:$a, CvtRZI_FTZ)>;
657*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2i_rz Float32Regs:$a),
658*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f32 Float32Regs:$a, CvtRZI)>;
659*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2i_rm_ftz Float32Regs:$a),
660*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f32 Float32Regs:$a, CvtRMI_FTZ)>;
661*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2i_rm Float32Regs:$a),
662*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f32 Float32Regs:$a, CvtRMI)>;
663*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2i_rp_ftz Float32Regs:$a),
664*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f32 Float32Regs:$a, CvtRPI_FTZ)>;
665*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2i_rp Float32Regs:$a),
666*9880d681SAndroid Build Coastguard Worker          (CVT_s32_f32 Float32Regs:$a, CvtRPI)>;
667*9880d681SAndroid Build Coastguard Worker
668*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ui_rn_ftz Float32Regs:$a),
669*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f32 Float32Regs:$a, CvtRNI_FTZ)>;
670*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ui_rn Float32Regs:$a),
671*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f32 Float32Regs:$a, CvtRNI)>;
672*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ui_rz_ftz Float32Regs:$a),
673*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f32 Float32Regs:$a, CvtRZI_FTZ)>;
674*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ui_rz Float32Regs:$a),
675*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f32 Float32Regs:$a, CvtRZI)>;
676*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ui_rm_ftz Float32Regs:$a),
677*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f32 Float32Regs:$a, CvtRMI_FTZ)>;
678*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ui_rm Float32Regs:$a),
679*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f32 Float32Regs:$a, CvtRMI)>;
680*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ui_rp_ftz Float32Regs:$a),
681*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f32 Float32Regs:$a, CvtRPI_FTZ)>;
682*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ui_rp Float32Regs:$a),
683*9880d681SAndroid Build Coastguard Worker          (CVT_u32_f32 Float32Regs:$a, CvtRPI)>;
684*9880d681SAndroid Build Coastguard Worker
685*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_i2f_rn Int32Regs:$a),
686*9880d681SAndroid Build Coastguard Worker          (CVT_f32_s32 Int32Regs:$a, CvtRN)>;
687*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_i2f_rz Int32Regs:$a),
688*9880d681SAndroid Build Coastguard Worker          (CVT_f32_s32 Int32Regs:$a, CvtRZ)>;
689*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_i2f_rm Int32Regs:$a),
690*9880d681SAndroid Build Coastguard Worker          (CVT_f32_s32 Int32Regs:$a, CvtRM)>;
691*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_i2f_rp Int32Regs:$a),
692*9880d681SAndroid Build Coastguard Worker          (CVT_f32_s32 Int32Regs:$a, CvtRP)>;
693*9880d681SAndroid Build Coastguard Worker
694*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ui2f_rn Int32Regs:$a),
695*9880d681SAndroid Build Coastguard Worker          (CVT_f32_u32 Int32Regs:$a, CvtRN)>;
696*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ui2f_rz Int32Regs:$a),
697*9880d681SAndroid Build Coastguard Worker          (CVT_f32_u32 Int32Regs:$a, CvtRZ)>;
698*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ui2f_rm Int32Regs:$a),
699*9880d681SAndroid Build Coastguard Worker          (CVT_f32_u32 Int32Regs:$a, CvtRM)>;
700*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ui2f_rp Int32Regs:$a),
701*9880d681SAndroid Build Coastguard Worker          (CVT_f32_u32 Int32Regs:$a, CvtRP)>;
702*9880d681SAndroid Build Coastguard Worker
703*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_LOHI_I2D : F_MATH_2<"mov.b64 \t$dst, {{$src0, $src1}};",
704*9880d681SAndroid Build Coastguard Worker  Float64Regs, Int32Regs, Int32Regs, int_nvvm_lohi_i2d>;
705*9880d681SAndroid Build Coastguard Worker
706*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_D2I_LO : F_MATH_1<!strconcat("{{\n\t",
707*9880d681SAndroid Build Coastguard Worker                       !strconcat(".reg .b32 %temp; \n\t",
708*9880d681SAndroid Build Coastguard Worker             !strconcat("mov.b64 \t{$dst, %temp}, $src0;\n\t",
709*9880d681SAndroid Build Coastguard Worker               "}}"))),
710*9880d681SAndroid Build Coastguard Worker             Int32Regs, Float64Regs, int_nvvm_d2i_lo>;
711*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_D2I_HI : F_MATH_1<!strconcat("{{\n\t",
712*9880d681SAndroid Build Coastguard Worker                       !strconcat(".reg .b32 %temp; \n\t",
713*9880d681SAndroid Build Coastguard Worker                         !strconcat("mov.b64 \t{%temp, $dst}, $src0;\n\t",
714*9880d681SAndroid Build Coastguard Worker                           "}}"))),
715*9880d681SAndroid Build Coastguard Worker             Int32Regs, Float64Regs, int_nvvm_d2i_hi>;
716*9880d681SAndroid Build Coastguard Worker
717*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ll_rn_ftz Float32Regs:$a),
718*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f32 Float32Regs:$a, CvtRNI_FTZ)>;
719*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ll_rn Float32Regs:$a),
720*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f32 Float32Regs:$a, CvtRNI)>;
721*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ll_rz_ftz Float32Regs:$a),
722*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f32 Float32Regs:$a, CvtRZI_FTZ)>;
723*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ll_rz Float32Regs:$a),
724*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f32 Float32Regs:$a, CvtRZI)>;
725*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ll_rm_ftz Float32Regs:$a),
726*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f32 Float32Regs:$a, CvtRMI_FTZ)>;
727*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ll_rm Float32Regs:$a),
728*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f32 Float32Regs:$a, CvtRMI)>;
729*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ll_rp_ftz Float32Regs:$a),
730*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f32 Float32Regs:$a, CvtRPI_FTZ)>;
731*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ll_rp Float32Regs:$a),
732*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f32 Float32Regs:$a, CvtRPI)>;
733*9880d681SAndroid Build Coastguard Worker
734*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ull_rn_ftz Float32Regs:$a),
735*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f32 Float32Regs:$a, CvtRNI_FTZ)>;
736*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ull_rn Float32Regs:$a),
737*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f32 Float32Regs:$a, CvtRNI)>;
738*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ull_rz_ftz Float32Regs:$a),
739*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f32 Float32Regs:$a, CvtRZI_FTZ)>;
740*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ull_rz Float32Regs:$a),
741*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f32 Float32Regs:$a, CvtRZI)>;
742*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ull_rm_ftz Float32Regs:$a),
743*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f32 Float32Regs:$a, CvtRMI_FTZ)>;
744*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ull_rm Float32Regs:$a),
745*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f32 Float32Regs:$a, CvtRMI)>;
746*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ull_rp_ftz Float32Regs:$a),
747*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f32 Float32Regs:$a, CvtRPI_FTZ)>;
748*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_f2ull_rp Float32Regs:$a),
749*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f32 Float32Regs:$a, CvtRPI)>;
750*9880d681SAndroid Build Coastguard Worker
751*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ll_rn Float64Regs:$a),
752*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f64 Float64Regs:$a, CvtRNI)>;
753*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ll_rz Float64Regs:$a),
754*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f64 Float64Regs:$a, CvtRZI)>;
755*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ll_rm Float64Regs:$a),
756*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f64 Float64Regs:$a, CvtRMI)>;
757*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ll_rp Float64Regs:$a),
758*9880d681SAndroid Build Coastguard Worker          (CVT_s64_f64 Float64Regs:$a, CvtRPI)>;
759*9880d681SAndroid Build Coastguard Worker
760*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ull_rn Float64Regs:$a),
761*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f64 Float64Regs:$a, CvtRNI)>;
762*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ull_rz Float64Regs:$a),
763*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f64 Float64Regs:$a, CvtRZI)>;
764*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ull_rm Float64Regs:$a),
765*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f64 Float64Regs:$a, CvtRMI)>;
766*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_d2ull_rp Float64Regs:$a),
767*9880d681SAndroid Build Coastguard Worker          (CVT_u64_f64 Float64Regs:$a, CvtRPI)>;
768*9880d681SAndroid Build Coastguard Worker
769*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ll2f_rn Int64Regs:$a),
770*9880d681SAndroid Build Coastguard Worker          (CVT_f32_s64 Int64Regs:$a, CvtRN)>;
771*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ll2f_rz Int64Regs:$a),
772*9880d681SAndroid Build Coastguard Worker          (CVT_f32_s64 Int64Regs:$a, CvtRZ)>;
773*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ll2f_rm Int64Regs:$a),
774*9880d681SAndroid Build Coastguard Worker          (CVT_f32_s64 Int64Regs:$a, CvtRM)>;
775*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ll2f_rp Int64Regs:$a),
776*9880d681SAndroid Build Coastguard Worker          (CVT_f32_s64 Int64Regs:$a, CvtRP)>;
777*9880d681SAndroid Build Coastguard Worker
778*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ull2f_rn Int64Regs:$a),
779*9880d681SAndroid Build Coastguard Worker          (CVT_f32_u64 Int64Regs:$a, CvtRN)>;
780*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ull2f_rz Int64Regs:$a),
781*9880d681SAndroid Build Coastguard Worker          (CVT_f32_u64 Int64Regs:$a, CvtRZ)>;
782*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ull2f_rm Int64Regs:$a),
783*9880d681SAndroid Build Coastguard Worker          (CVT_f32_u64 Int64Regs:$a, CvtRM)>;
784*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ull2f_rp Int64Regs:$a),
785*9880d681SAndroid Build Coastguard Worker          (CVT_f32_u64 Int64Regs:$a, CvtRP)>;
786*9880d681SAndroid Build Coastguard Worker
787*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ll2d_rn Int64Regs:$a),
788*9880d681SAndroid Build Coastguard Worker          (CVT_f64_s64 Int64Regs:$a, CvtRN)>;
789*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ll2d_rz Int64Regs:$a),
790*9880d681SAndroid Build Coastguard Worker          (CVT_f64_s64 Int64Regs:$a, CvtRZ)>;
791*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ll2d_rm Int64Regs:$a),
792*9880d681SAndroid Build Coastguard Worker          (CVT_f64_s64 Int64Regs:$a, CvtRM)>;
793*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ll2d_rp Int64Regs:$a),
794*9880d681SAndroid Build Coastguard Worker          (CVT_f64_s64 Int64Regs:$a, CvtRP)>;
795*9880d681SAndroid Build Coastguard Worker
796*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ull2d_rn Int64Regs:$a),
797*9880d681SAndroid Build Coastguard Worker          (CVT_f64_u64 Int64Regs:$a, CvtRN)>;
798*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ull2d_rz Int64Regs:$a),
799*9880d681SAndroid Build Coastguard Worker          (CVT_f64_u64 Int64Regs:$a, CvtRZ)>;
800*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ull2d_rm Int64Regs:$a),
801*9880d681SAndroid Build Coastguard Worker          (CVT_f64_u64 Int64Regs:$a, CvtRM)>;
802*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_ull2d_rp Int64Regs:$a),
803*9880d681SAndroid Build Coastguard Worker          (CVT_f64_u64 Int64Regs:$a, CvtRP)>;
804*9880d681SAndroid Build Coastguard Worker
805*9880d681SAndroid Build Coastguard Worker
806*9880d681SAndroid Build Coastguard Worker// FIXME: Ideally, we could use these patterns instead of the scope-creating
807*9880d681SAndroid Build Coastguard Worker// patterns, but ptxas does not like these since .s16 is not compatible with
808*9880d681SAndroid Build Coastguard Worker// .f16.  The solution is to use .bXX for all integer register types, but we
809*9880d681SAndroid Build Coastguard Worker// are not there yet.
810*9880d681SAndroid Build Coastguard Worker//def : Pat<(int_nvvm_f2h_rn_ftz Float32Regs:$a),
811*9880d681SAndroid Build Coastguard Worker//          (CVT_f16_f32 Float32Regs:$a, CvtRN_FTZ)>;
812*9880d681SAndroid Build Coastguard Worker//def : Pat<(int_nvvm_f2h_rn Float32Regs:$a),
813*9880d681SAndroid Build Coastguard Worker//          (CVT_f16_f32 Float32Regs:$a, CvtRN)>;
814*9880d681SAndroid Build Coastguard Worker//
815*9880d681SAndroid Build Coastguard Worker//def : Pat<(int_nvvm_h2f Int16Regs:$a),
816*9880d681SAndroid Build Coastguard Worker//          (CVT_f32_f16 Int16Regs:$a, CvtNONE)>;
817*9880d681SAndroid Build Coastguard Worker
818*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_F2H_RN_FTZ : F_MATH_1<!strconcat("{{\n\t",
819*9880d681SAndroid Build Coastguard Worker                                   !strconcat(".reg .b16 %temp;\n\t",
820*9880d681SAndroid Build Coastguard Worker           !strconcat("cvt.rn.ftz.f16.f32 \t%temp, $src0;\n\t",
821*9880d681SAndroid Build Coastguard Worker           !strconcat("mov.b16 \t$dst, %temp;\n",
822*9880d681SAndroid Build Coastguard Worker             "}}")))),
823*9880d681SAndroid Build Coastguard Worker                                   Int16Regs, Float32Regs, int_nvvm_f2h_rn_ftz>;
824*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_F2H_RN : F_MATH_1<!strconcat("{{\n\t",
825*9880d681SAndroid Build Coastguard Worker                                   !strconcat(".reg .b16 %temp;\n\t",
826*9880d681SAndroid Build Coastguard Worker           !strconcat("cvt.rn.f16.f32 \t%temp, $src0;\n\t",
827*9880d681SAndroid Build Coastguard Worker           !strconcat("mov.b16 \t$dst, %temp;\n",
828*9880d681SAndroid Build Coastguard Worker             "}}")))),
829*9880d681SAndroid Build Coastguard Worker           Int16Regs, Float32Regs, int_nvvm_f2h_rn>;
830*9880d681SAndroid Build Coastguard Worker
831*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_H2F : F_MATH_1<!strconcat("{{\n\t",
832*9880d681SAndroid Build Coastguard Worker                            !strconcat(".reg .b16 %temp;\n\t",
833*9880d681SAndroid Build Coastguard Worker          !strconcat("mov.b16 \t%temp, $src0;\n\t",
834*9880d681SAndroid Build Coastguard Worker          !strconcat("cvt.f32.f16 \t$dst, %temp;\n\t",
835*9880d681SAndroid Build Coastguard Worker            "}}")))),
836*9880d681SAndroid Build Coastguard Worker          Float32Regs, Int16Regs, int_nvvm_h2f>;
837*9880d681SAndroid Build Coastguard Worker
838*9880d681SAndroid Build Coastguard Workerdef : Pat<(f32 (f16_to_fp Int16Regs:$a)),
839*9880d681SAndroid Build Coastguard Worker          (CVT_f32_f16 Int16Regs:$a, CvtNONE)>;
840*9880d681SAndroid Build Coastguard Workerdef : Pat<(i16 (fp_to_f16 Float32Regs:$a)),
841*9880d681SAndroid Build Coastguard Worker          (CVT_f16_f32 Float32Regs:$a, CvtRN_FTZ)>, Requires<[doF32FTZ]>;
842*9880d681SAndroid Build Coastguard Workerdef : Pat<(i16 (fp_to_f16 Float32Regs:$a)),
843*9880d681SAndroid Build Coastguard Worker          (CVT_f16_f32 Float32Regs:$a, CvtRN)>;
844*9880d681SAndroid Build Coastguard Worker
845*9880d681SAndroid Build Coastguard Workerdef : Pat<(f64 (f16_to_fp Int16Regs:$a)),
846*9880d681SAndroid Build Coastguard Worker          (CVT_f64_f16 Int16Regs:$a, CvtNONE)>;
847*9880d681SAndroid Build Coastguard Workerdef : Pat<(i16 (fp_to_f16 Float64Regs:$a)),
848*9880d681SAndroid Build Coastguard Worker          (CVT_f16_f64 Float64Regs:$a, CvtRN)>;
849*9880d681SAndroid Build Coastguard Worker
850*9880d681SAndroid Build Coastguard Worker//
851*9880d681SAndroid Build Coastguard Worker// Bitcast
852*9880d681SAndroid Build Coastguard Worker//
853*9880d681SAndroid Build Coastguard Worker
854*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_BITCAST_F2I : F_MATH_1<"mov.b32 \t$dst, $src0;", Int32Regs,
855*9880d681SAndroid Build Coastguard Worker  Float32Regs, int_nvvm_bitcast_f2i>;
856*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_BITCAST_I2F : F_MATH_1<"mov.b32 \t$dst, $src0;", Float32Regs,
857*9880d681SAndroid Build Coastguard Worker  Int32Regs, int_nvvm_bitcast_i2f>;
858*9880d681SAndroid Build Coastguard Worker
859*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_BITCAST_LL2D : F_MATH_1<"mov.b64 \t$dst, $src0;", Float64Regs,
860*9880d681SAndroid Build Coastguard Worker  Int64Regs, int_nvvm_bitcast_ll2d>;
861*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_BITCAST_D2LL : F_MATH_1<"mov.b64 \t$dst, $src0;", Int64Regs,
862*9880d681SAndroid Build Coastguard Worker  Float64Regs, int_nvvm_bitcast_d2ll>;
863*9880d681SAndroid Build Coastguard Worker
864*9880d681SAndroid Build Coastguard Worker//-----------------------------------
865*9880d681SAndroid Build Coastguard Worker// Atomic Functions
866*9880d681SAndroid Build Coastguard Worker//-----------------------------------
867*9880d681SAndroid Build Coastguard Worker
868*9880d681SAndroid Build Coastguard Workerclass ATOMIC_GLOBAL_CHK <dag ops, dag frag>
869*9880d681SAndroid Build Coastguard Worker : PatFrag<ops, frag, [{
870*9880d681SAndroid Build Coastguard Worker   return ChkMemSDNodeAddressSpace(N, llvm::ADDRESS_SPACE_GLOBAL);
871*9880d681SAndroid Build Coastguard Worker}]>;
872*9880d681SAndroid Build Coastguard Workerclass ATOMIC_SHARED_CHK <dag ops, dag frag>
873*9880d681SAndroid Build Coastguard Worker : PatFrag<ops, frag, [{
874*9880d681SAndroid Build Coastguard Worker   return ChkMemSDNodeAddressSpace(N, llvm::ADDRESS_SPACE_SHARED);
875*9880d681SAndroid Build Coastguard Worker}]>;
876*9880d681SAndroid Build Coastguard Workerclass ATOMIC_GENERIC_CHK <dag ops, dag frag>
877*9880d681SAndroid Build Coastguard Worker : PatFrag<ops, frag, [{
878*9880d681SAndroid Build Coastguard Worker   return ChkMemSDNodeAddressSpace(N, llvm::ADDRESS_SPACE_GENERIC);
879*9880d681SAndroid Build Coastguard Worker}]>;
880*9880d681SAndroid Build Coastguard Worker
881*9880d681SAndroid Build Coastguard Workermulticlass F_ATOMIC_2_imp<NVPTXRegClass ptrclass, NVPTXRegClass regclass,
882*9880d681SAndroid Build Coastguard Worker  string SpaceStr, string TypeStr, string OpcStr, PatFrag IntOp,
883*9880d681SAndroid Build Coastguard Worker  Operand IMMType, SDNode IMM, Predicate Pred> {
884*9880d681SAndroid Build Coastguard Worker  def reg : NVPTXInst<(outs regclass:$dst), (ins ptrclass:$addr, regclass:$b),
885*9880d681SAndroid Build Coastguard Worker               !strconcat("atom",
886*9880d681SAndroid Build Coastguard Worker         !strconcat(SpaceStr,
887*9880d681SAndroid Build Coastguard Worker         !strconcat(OpcStr,
888*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
889*9880d681SAndroid Build Coastguard Worker         !strconcat(" \t$dst, [$addr], $b;", ""))))),
890*9880d681SAndroid Build Coastguard Worker         [(set regclass:$dst, (IntOp ptrclass:$addr, regclass:$b))]>,
891*9880d681SAndroid Build Coastguard Worker  Requires<[Pred]>;
892*9880d681SAndroid Build Coastguard Worker  def imm : NVPTXInst<(outs regclass:$dst), (ins ptrclass:$addr, IMMType:$b),
893*9880d681SAndroid Build Coastguard Worker               !strconcat("atom",
894*9880d681SAndroid Build Coastguard Worker         !strconcat(SpaceStr,
895*9880d681SAndroid Build Coastguard Worker         !strconcat(OpcStr,
896*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
897*9880d681SAndroid Build Coastguard Worker         !strconcat(" \t$dst, [$addr], $b;", ""))))),
898*9880d681SAndroid Build Coastguard Worker         [(set regclass:$dst, (IntOp ptrclass:$addr, IMM:$b))]>,
899*9880d681SAndroid Build Coastguard Worker  Requires<[Pred]>;
900*9880d681SAndroid Build Coastguard Worker}
901*9880d681SAndroid Build Coastguard Workermulticlass F_ATOMIC_2<NVPTXRegClass regclass, string SpaceStr, string TypeStr,
902*9880d681SAndroid Build Coastguard Worker  string OpcStr, PatFrag IntOp, Operand IMMType, SDNode IMM, Predicate Pred> {
903*9880d681SAndroid Build Coastguard Worker  defm p32 : F_ATOMIC_2_imp<Int32Regs, regclass, SpaceStr, TypeStr, OpcStr,
904*9880d681SAndroid Build Coastguard Worker    IntOp, IMMType, IMM, Pred>;
905*9880d681SAndroid Build Coastguard Worker  defm p64 : F_ATOMIC_2_imp<Int64Regs, regclass, SpaceStr, TypeStr, OpcStr,
906*9880d681SAndroid Build Coastguard Worker    IntOp, IMMType, IMM, Pred>;
907*9880d681SAndroid Build Coastguard Worker}
908*9880d681SAndroid Build Coastguard Worker
909*9880d681SAndroid Build Coastguard Worker// has 2 operands, neg the second one
910*9880d681SAndroid Build Coastguard Workermulticlass F_ATOMIC_2_NEG_imp<NVPTXRegClass ptrclass, NVPTXRegClass regclass,
911*9880d681SAndroid Build Coastguard Worker  string SpaceStr, string TypeStr, string OpcStr, PatFrag IntOp,
912*9880d681SAndroid Build Coastguard Worker  Operand IMMType, Predicate Pred> {
913*9880d681SAndroid Build Coastguard Worker  def reg : NVPTXInst<(outs regclass:$dst), (ins ptrclass:$addr, regclass:$b),
914*9880d681SAndroid Build Coastguard Worker    !strconcat("{{ \n\t",
915*9880d681SAndroid Build Coastguard Worker         !strconcat(".reg \t.s",
916*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
917*9880d681SAndroid Build Coastguard Worker         !strconcat(" temp; \n\t",
918*9880d681SAndroid Build Coastguard Worker         !strconcat("neg.s",
919*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
920*9880d681SAndroid Build Coastguard Worker         !strconcat(" \ttemp, $b; \n\t",
921*9880d681SAndroid Build Coastguard Worker               !strconcat("atom",
922*9880d681SAndroid Build Coastguard Worker         !strconcat(SpaceStr,
923*9880d681SAndroid Build Coastguard Worker         !strconcat(OpcStr,
924*9880d681SAndroid Build Coastguard Worker         !strconcat(".u",
925*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
926*9880d681SAndroid Build Coastguard Worker         !strconcat(" \t$dst, [$addr], temp; \n\t",
927*9880d681SAndroid Build Coastguard Worker           !strconcat("}}", "")))))))))))))),
928*9880d681SAndroid Build Coastguard Worker         [(set regclass:$dst, (IntOp ptrclass:$addr, regclass:$b))]>,
929*9880d681SAndroid Build Coastguard Worker  Requires<[Pred]>;
930*9880d681SAndroid Build Coastguard Worker}
931*9880d681SAndroid Build Coastguard Workermulticlass F_ATOMIC_2_NEG<NVPTXRegClass regclass, string SpaceStr,
932*9880d681SAndroid Build Coastguard Worker  string TypeStr, string OpcStr, PatFrag IntOp, Operand IMMType,
933*9880d681SAndroid Build Coastguard Worker  Predicate Pred> {
934*9880d681SAndroid Build Coastguard Worker defm p32: F_ATOMIC_2_NEG_imp<Int32Regs, regclass, SpaceStr, TypeStr, OpcStr,
935*9880d681SAndroid Build Coastguard Worker   IntOp, IMMType, Pred> ;
936*9880d681SAndroid Build Coastguard Worker defm p64: F_ATOMIC_2_NEG_imp<Int64Regs, regclass, SpaceStr, TypeStr, OpcStr,
937*9880d681SAndroid Build Coastguard Worker   IntOp, IMMType, Pred> ;
938*9880d681SAndroid Build Coastguard Worker}
939*9880d681SAndroid Build Coastguard Worker
940*9880d681SAndroid Build Coastguard Worker// has 3 operands
941*9880d681SAndroid Build Coastguard Workermulticlass F_ATOMIC_3_imp<NVPTXRegClass ptrclass, NVPTXRegClass regclass,
942*9880d681SAndroid Build Coastguard Worker  string SpaceStr, string TypeStr, string OpcStr, PatFrag IntOp,
943*9880d681SAndroid Build Coastguard Worker  Operand IMMType, Predicate Pred> {
944*9880d681SAndroid Build Coastguard Worker  def reg : NVPTXInst<(outs regclass:$dst),
945*9880d681SAndroid Build Coastguard Worker    (ins ptrclass:$addr, regclass:$b, regclass:$c),
946*9880d681SAndroid Build Coastguard Worker               !strconcat("atom",
947*9880d681SAndroid Build Coastguard Worker         !strconcat(SpaceStr,
948*9880d681SAndroid Build Coastguard Worker         !strconcat(OpcStr,
949*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
950*9880d681SAndroid Build Coastguard Worker         !strconcat(" \t$dst, [$addr], $b, $c;", ""))))),
951*9880d681SAndroid Build Coastguard Worker         [(set regclass:$dst,
952*9880d681SAndroid Build Coastguard Worker           (IntOp ptrclass:$addr, regclass:$b, regclass:$c))]>,
953*9880d681SAndroid Build Coastguard Worker         Requires<[Pred]>;
954*9880d681SAndroid Build Coastguard Worker  def imm1 : NVPTXInst<(outs regclass:$dst),
955*9880d681SAndroid Build Coastguard Worker    (ins ptrclass:$addr, IMMType:$b, regclass:$c),
956*9880d681SAndroid Build Coastguard Worker               !strconcat("atom",
957*9880d681SAndroid Build Coastguard Worker         !strconcat(SpaceStr,
958*9880d681SAndroid Build Coastguard Worker         !strconcat(OpcStr,
959*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
960*9880d681SAndroid Build Coastguard Worker         !strconcat(" \t$dst, [$addr], $b, $c;", ""))))),
961*9880d681SAndroid Build Coastguard Worker         [(set regclass:$dst, (IntOp ptrclass:$addr, imm:$b, regclass:$c))]>,
962*9880d681SAndroid Build Coastguard Worker  Requires<[Pred]>;
963*9880d681SAndroid Build Coastguard Worker  def imm2 : NVPTXInst<(outs regclass:$dst),
964*9880d681SAndroid Build Coastguard Worker    (ins ptrclass:$addr, regclass:$b, IMMType:$c),
965*9880d681SAndroid Build Coastguard Worker               !strconcat("atom",
966*9880d681SAndroid Build Coastguard Worker         !strconcat(SpaceStr,
967*9880d681SAndroid Build Coastguard Worker         !strconcat(OpcStr,
968*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
969*9880d681SAndroid Build Coastguard Worker         !strconcat(" \t$dst, [$addr], $b, $c;", ""))))),
970*9880d681SAndroid Build Coastguard Worker         [(set regclass:$dst, (IntOp ptrclass:$addr, regclass:$b, imm:$c))]>,
971*9880d681SAndroid Build Coastguard Worker  Requires<[Pred]>;
972*9880d681SAndroid Build Coastguard Worker  def imm3 : NVPTXInst<(outs regclass:$dst),
973*9880d681SAndroid Build Coastguard Worker    (ins ptrclass:$addr, IMMType:$b, IMMType:$c),
974*9880d681SAndroid Build Coastguard Worker               !strconcat("atom",
975*9880d681SAndroid Build Coastguard Worker         !strconcat(SpaceStr,
976*9880d681SAndroid Build Coastguard Worker         !strconcat(OpcStr,
977*9880d681SAndroid Build Coastguard Worker         !strconcat(TypeStr,
978*9880d681SAndroid Build Coastguard Worker         !strconcat(" \t$dst, [$addr], $b, $c;", ""))))),
979*9880d681SAndroid Build Coastguard Worker         [(set regclass:$dst, (IntOp ptrclass:$addr, imm:$b, imm:$c))]>,
980*9880d681SAndroid Build Coastguard Worker  Requires<[Pred]>;
981*9880d681SAndroid Build Coastguard Worker}
982*9880d681SAndroid Build Coastguard Workermulticlass F_ATOMIC_3<NVPTXRegClass regclass, string SpaceStr, string TypeStr,
983*9880d681SAndroid Build Coastguard Worker  string OpcStr, PatFrag IntOp, Operand IMMType, Predicate Pred> {
984*9880d681SAndroid Build Coastguard Worker  defm p32 : F_ATOMIC_3_imp<Int32Regs, regclass, SpaceStr, TypeStr, OpcStr,
985*9880d681SAndroid Build Coastguard Worker    IntOp, IMMType, Pred>;
986*9880d681SAndroid Build Coastguard Worker  defm p64 : F_ATOMIC_3_imp<Int64Regs, regclass, SpaceStr, TypeStr, OpcStr,
987*9880d681SAndroid Build Coastguard Worker    IntOp, IMMType, Pred>;
988*9880d681SAndroid Build Coastguard Worker}
989*9880d681SAndroid Build Coastguard Worker
990*9880d681SAndroid Build Coastguard Worker// atom_add
991*9880d681SAndroid Build Coastguard Worker
992*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
993*9880d681SAndroid Build Coastguard Worker  (atomic_load_add_32 node:$a, node:$b)>;
994*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
995*9880d681SAndroid Build Coastguard Worker  (atomic_load_add_32 node:$a, node:$b)>;
996*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
997*9880d681SAndroid Build Coastguard Worker  (atomic_load_add_32 node:$a, node:$b)>;
998*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
999*9880d681SAndroid Build Coastguard Worker  (atomic_load_add_64 node:$a, node:$b)>;
1000*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1001*9880d681SAndroid Build Coastguard Worker  (atomic_load_add_64 node:$a, node:$b)>;
1002*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1003*9880d681SAndroid Build Coastguard Worker  (atomic_load_add_64 node:$a, node:$b)>;
1004*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_f32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1005*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_add_f32 node:$a, node:$b)>;
1006*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_f32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1007*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_add_f32 node:$a, node:$b)>;
1008*9880d681SAndroid Build Coastguard Workerdef atomic_load_add_f32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1009*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_add_f32 node:$a, node:$b)>;
1010*9880d681SAndroid Build Coastguard Worker
1011*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".u32", ".add",
1012*9880d681SAndroid Build Coastguard Worker  atomic_load_add_32_g, i32imm, imm, hasAtomRedG32>;
1013*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".u32", ".add",
1014*9880d681SAndroid Build Coastguard Worker  atomic_load_add_32_s, i32imm, imm, hasAtomRedS32>;
1015*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".u32", ".add",
1016*9880d681SAndroid Build Coastguard Worker  atomic_load_add_32_gen, i32imm, imm, hasAtomRedGen32>;
1017*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global", ".u32",
1018*9880d681SAndroid Build Coastguard Worker  ".add", atomic_load_add_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1019*9880d681SAndroid Build Coastguard Worker
1020*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".u64", ".add",
1021*9880d681SAndroid Build Coastguard Worker  atomic_load_add_64_g, i64imm, imm, hasAtomRedG64>;
1022*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".u64", ".add",
1023*9880d681SAndroid Build Coastguard Worker  atomic_load_add_64_s, i64imm, imm, hasAtomRedS64>;
1024*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".u64", ".add",
1025*9880d681SAndroid Build Coastguard Worker  atomic_load_add_64_gen, i64imm, imm, hasAtomRedGen64>;
1026*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global", ".u64",
1027*9880d681SAndroid Build Coastguard Worker  ".add", atomic_load_add_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1028*9880d681SAndroid Build Coastguard Worker
1029*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_G_F32 : F_ATOMIC_2<Float32Regs, ".global", ".f32", ".add",
1030*9880d681SAndroid Build Coastguard Worker  atomic_load_add_f32_g, f32imm, fpimm, hasAtomAddF32>;
1031*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_S_F32 : F_ATOMIC_2<Float32Regs, ".shared", ".f32", ".add",
1032*9880d681SAndroid Build Coastguard Worker  atomic_load_add_f32_s, f32imm, fpimm, hasAtomAddF32>;
1033*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_ADD_GEN_F32 : F_ATOMIC_2<Float32Regs, "", ".f32", ".add",
1034*9880d681SAndroid Build Coastguard Worker  atomic_load_add_f32_gen, f32imm, fpimm, hasAtomAddF32>;
1035*9880d681SAndroid Build Coastguard Worker
1036*9880d681SAndroid Build Coastguard Worker// atom_sub
1037*9880d681SAndroid Build Coastguard Worker
1038*9880d681SAndroid Build Coastguard Workerdef atomic_load_sub_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1039*9880d681SAndroid Build Coastguard Worker  (atomic_load_sub_32 node:$a, node:$b)>;
1040*9880d681SAndroid Build Coastguard Workerdef atomic_load_sub_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1041*9880d681SAndroid Build Coastguard Worker  (atomic_load_sub_32 node:$a, node:$b)>;
1042*9880d681SAndroid Build Coastguard Workerdef atomic_load_sub_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1043*9880d681SAndroid Build Coastguard Worker  (atomic_load_sub_32 node:$a, node:$b)>;
1044*9880d681SAndroid Build Coastguard Workerdef atomic_load_sub_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1045*9880d681SAndroid Build Coastguard Worker  (atomic_load_sub_64 node:$a, node:$b)>;
1046*9880d681SAndroid Build Coastguard Workerdef atomic_load_sub_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1047*9880d681SAndroid Build Coastguard Worker  (atomic_load_sub_64 node:$a, node:$b)>;
1048*9880d681SAndroid Build Coastguard Workerdef atomic_load_sub_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1049*9880d681SAndroid Build Coastguard Worker  (atomic_load_sub_64 node:$a, node:$b)>;
1050*9880d681SAndroid Build Coastguard Worker
1051*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SUB_G_32 : F_ATOMIC_2_NEG<Int32Regs, ".global", "32", ".add",
1052*9880d681SAndroid Build Coastguard Worker  atomic_load_sub_32_g, i32imm, hasAtomRedG32>;
1053*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SUB_G_64 : F_ATOMIC_2_NEG<Int64Regs, ".global", "64", ".add",
1054*9880d681SAndroid Build Coastguard Worker  atomic_load_sub_64_g, i64imm, hasAtomRedG64>;
1055*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SUB_GEN_32 : F_ATOMIC_2_NEG<Int32Regs, "", "32", ".add",
1056*9880d681SAndroid Build Coastguard Worker  atomic_load_sub_32_gen, i32imm, hasAtomRedGen32>;
1057*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SUB_GEN_32_USE_G : F_ATOMIC_2_NEG<Int32Regs, ".global", "32",
1058*9880d681SAndroid Build Coastguard Worker  ".add", atomic_load_sub_32_gen, i32imm, useAtomRedG32forGen32>;
1059*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SUB_S_32 : F_ATOMIC_2_NEG<Int32Regs, ".shared", "32", ".add",
1060*9880d681SAndroid Build Coastguard Worker  atomic_load_sub_32_s, i32imm, hasAtomRedS32>;
1061*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SUB_S_64 : F_ATOMIC_2_NEG<Int64Regs, ".shared", "64", ".add",
1062*9880d681SAndroid Build Coastguard Worker  atomic_load_sub_64_s, i64imm, hasAtomRedS64>;
1063*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SUB_GEN_64 : F_ATOMIC_2_NEG<Int64Regs, "", "64", ".add",
1064*9880d681SAndroid Build Coastguard Worker  atomic_load_sub_64_gen, i64imm, hasAtomRedGen64>;
1065*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SUB_GEN_64_USE_G : F_ATOMIC_2_NEG<Int64Regs, ".global", "64",
1066*9880d681SAndroid Build Coastguard Worker  ".add", atomic_load_sub_64_gen, i64imm, useAtomRedG64forGen64>;
1067*9880d681SAndroid Build Coastguard Worker
1068*9880d681SAndroid Build Coastguard Worker// atom_swap
1069*9880d681SAndroid Build Coastguard Worker
1070*9880d681SAndroid Build Coastguard Workerdef atomic_swap_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1071*9880d681SAndroid Build Coastguard Worker  (atomic_swap_32 node:$a, node:$b)>;
1072*9880d681SAndroid Build Coastguard Workerdef atomic_swap_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1073*9880d681SAndroid Build Coastguard Worker  (atomic_swap_32 node:$a, node:$b)>;
1074*9880d681SAndroid Build Coastguard Workerdef atomic_swap_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1075*9880d681SAndroid Build Coastguard Worker  (atomic_swap_32 node:$a, node:$b)>;
1076*9880d681SAndroid Build Coastguard Workerdef atomic_swap_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1077*9880d681SAndroid Build Coastguard Worker  (atomic_swap_64 node:$a, node:$b)>;
1078*9880d681SAndroid Build Coastguard Workerdef atomic_swap_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1079*9880d681SAndroid Build Coastguard Worker  (atomic_swap_64 node:$a, node:$b)>;
1080*9880d681SAndroid Build Coastguard Workerdef atomic_swap_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1081*9880d681SAndroid Build Coastguard Worker  (atomic_swap_64 node:$a, node:$b)>;
1082*9880d681SAndroid Build Coastguard Worker
1083*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SWAP_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".b32", ".exch",
1084*9880d681SAndroid Build Coastguard Worker  atomic_swap_32_g, i32imm, imm, hasAtomRedG32>;
1085*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SWAP_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".b32", ".exch",
1086*9880d681SAndroid Build Coastguard Worker  atomic_swap_32_s, i32imm, imm, hasAtomRedS32>;
1087*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SWAP_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".b32", ".exch",
1088*9880d681SAndroid Build Coastguard Worker  atomic_swap_32_gen, i32imm, imm, hasAtomRedGen32>;
1089*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SWAP_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global", ".b32",
1090*9880d681SAndroid Build Coastguard Worker  ".exch", atomic_swap_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1091*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SWAP_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".b64", ".exch",
1092*9880d681SAndroid Build Coastguard Worker  atomic_swap_64_g, i64imm, imm, hasAtomRedG64>;
1093*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SWAP_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".b64", ".exch",
1094*9880d681SAndroid Build Coastguard Worker  atomic_swap_64_s, i64imm, imm, hasAtomRedS64>;
1095*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SWAP_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".b64", ".exch",
1096*9880d681SAndroid Build Coastguard Worker  atomic_swap_64_gen, i64imm, imm, hasAtomRedGen64>;
1097*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_SWAP_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global", ".b64",
1098*9880d681SAndroid Build Coastguard Worker  ".exch", atomic_swap_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1099*9880d681SAndroid Build Coastguard Worker
1100*9880d681SAndroid Build Coastguard Worker// atom_max
1101*9880d681SAndroid Build Coastguard Worker
1102*9880d681SAndroid Build Coastguard Workerdef atomic_load_max_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b)
1103*9880d681SAndroid Build Coastguard Worker  , (atomic_load_max_32 node:$a, node:$b)>;
1104*9880d681SAndroid Build Coastguard Workerdef atomic_load_max_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1105*9880d681SAndroid Build Coastguard Worker  (atomic_load_max_32 node:$a, node:$b)>;
1106*9880d681SAndroid Build Coastguard Workerdef atomic_load_max_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1107*9880d681SAndroid Build Coastguard Worker  (atomic_load_max_32 node:$a, node:$b)>;
1108*9880d681SAndroid Build Coastguard Workerdef atomic_load_max_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b)
1109*9880d681SAndroid Build Coastguard Worker  , (atomic_load_max_64 node:$a, node:$b)>;
1110*9880d681SAndroid Build Coastguard Workerdef atomic_load_max_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1111*9880d681SAndroid Build Coastguard Worker  (atomic_load_max_64 node:$a, node:$b)>;
1112*9880d681SAndroid Build Coastguard Workerdef atomic_load_max_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1113*9880d681SAndroid Build Coastguard Worker  (atomic_load_max_64 node:$a, node:$b)>;
1114*9880d681SAndroid Build Coastguard Workerdef atomic_load_umax_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1115*9880d681SAndroid Build Coastguard Worker  (atomic_load_umax_32 node:$a, node:$b)>;
1116*9880d681SAndroid Build Coastguard Workerdef atomic_load_umax_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1117*9880d681SAndroid Build Coastguard Worker  (atomic_load_umax_32 node:$a, node:$b)>;
1118*9880d681SAndroid Build Coastguard Workerdef atomic_load_umax_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1119*9880d681SAndroid Build Coastguard Worker  (atomic_load_umax_32 node:$a, node:$b)>;
1120*9880d681SAndroid Build Coastguard Workerdef atomic_load_umax_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1121*9880d681SAndroid Build Coastguard Worker  (atomic_load_umax_64 node:$a, node:$b)>;
1122*9880d681SAndroid Build Coastguard Workerdef atomic_load_umax_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1123*9880d681SAndroid Build Coastguard Worker  (atomic_load_umax_64 node:$a, node:$b)>;
1124*9880d681SAndroid Build Coastguard Workerdef atomic_load_umax_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1125*9880d681SAndroid Build Coastguard Worker  (atomic_load_umax_64 node:$a, node:$b)>;
1126*9880d681SAndroid Build Coastguard Worker
1127*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MAX_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".s32",
1128*9880d681SAndroid Build Coastguard Worker  ".max", atomic_load_max_32_g, i32imm, imm, hasAtomRedG32>;
1129*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MAX_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".s32",
1130*9880d681SAndroid Build Coastguard Worker  ".max", atomic_load_max_32_s, i32imm, imm, hasAtomRedS32>;
1131*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MAX_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".s32", ".max",
1132*9880d681SAndroid Build Coastguard Worker  atomic_load_max_32_gen, i32imm, imm, hasAtomRedGen32>;
1133*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MAX_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global",
1134*9880d681SAndroid Build Coastguard Worker  ".s32", ".max", atomic_load_max_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1135*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MAX_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".s64",
1136*9880d681SAndroid Build Coastguard Worker  ".max", atomic_load_max_64_g, i64imm, imm, hasAtomRedG64>;
1137*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MAX_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".s64",
1138*9880d681SAndroid Build Coastguard Worker  ".max", atomic_load_max_64_s, i64imm, imm, hasAtomRedS64>;
1139*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MAX_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".s64", ".max",
1140*9880d681SAndroid Build Coastguard Worker  atomic_load_max_64_gen, i64imm, imm, hasAtomRedGen64>;
1141*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MAX_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global",
1142*9880d681SAndroid Build Coastguard Worker  ".s64", ".max", atomic_load_max_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1143*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMAX_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".u32",
1144*9880d681SAndroid Build Coastguard Worker  ".max", atomic_load_umax_32_g, i32imm, imm, hasAtomRedG32>;
1145*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMAX_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".u32",
1146*9880d681SAndroid Build Coastguard Worker  ".max", atomic_load_umax_32_s, i32imm, imm, hasAtomRedS32>;
1147*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMAX_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".u32", ".max",
1148*9880d681SAndroid Build Coastguard Worker  atomic_load_umax_32_gen, i32imm, imm, hasAtomRedGen32>;
1149*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMAX_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global",
1150*9880d681SAndroid Build Coastguard Worker  ".u32", ".max", atomic_load_umax_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1151*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMAX_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".u64",
1152*9880d681SAndroid Build Coastguard Worker  ".max", atomic_load_umax_64_g, i64imm, imm, hasAtomRedG64>;
1153*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMAX_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".u64",
1154*9880d681SAndroid Build Coastguard Worker  ".max", atomic_load_umax_64_s, i64imm, imm, hasAtomRedS64>;
1155*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMAX_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".u64", ".max",
1156*9880d681SAndroid Build Coastguard Worker  atomic_load_umax_64_gen, i64imm, imm, hasAtomRedGen64>;
1157*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMAX_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global",
1158*9880d681SAndroid Build Coastguard Worker  ".u64", ".max", atomic_load_umax_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1159*9880d681SAndroid Build Coastguard Worker
1160*9880d681SAndroid Build Coastguard Worker// atom_min
1161*9880d681SAndroid Build Coastguard Worker
1162*9880d681SAndroid Build Coastguard Workerdef atomic_load_min_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1163*9880d681SAndroid Build Coastguard Worker  (atomic_load_min_32 node:$a, node:$b)>;
1164*9880d681SAndroid Build Coastguard Workerdef atomic_load_min_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1165*9880d681SAndroid Build Coastguard Worker  (atomic_load_min_32 node:$a, node:$b)>;
1166*9880d681SAndroid Build Coastguard Workerdef atomic_load_min_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1167*9880d681SAndroid Build Coastguard Worker  (atomic_load_min_32 node:$a, node:$b)>;
1168*9880d681SAndroid Build Coastguard Workerdef atomic_load_min_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1169*9880d681SAndroid Build Coastguard Worker  (atomic_load_min_64 node:$a, node:$b)>;
1170*9880d681SAndroid Build Coastguard Workerdef atomic_load_min_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1171*9880d681SAndroid Build Coastguard Worker  (atomic_load_min_64 node:$a, node:$b)>;
1172*9880d681SAndroid Build Coastguard Workerdef atomic_load_min_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1173*9880d681SAndroid Build Coastguard Worker  (atomic_load_min_64 node:$a, node:$b)>;
1174*9880d681SAndroid Build Coastguard Workerdef atomic_load_umin_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1175*9880d681SAndroid Build Coastguard Worker  (atomic_load_umin_32 node:$a, node:$b)>;
1176*9880d681SAndroid Build Coastguard Workerdef atomic_load_umin_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1177*9880d681SAndroid Build Coastguard Worker  (atomic_load_umin_32 node:$a, node:$b)>;
1178*9880d681SAndroid Build Coastguard Workerdef atomic_load_umin_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1179*9880d681SAndroid Build Coastguard Worker  (atomic_load_umin_32 node:$a, node:$b)>;
1180*9880d681SAndroid Build Coastguard Workerdef atomic_load_umin_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1181*9880d681SAndroid Build Coastguard Worker  (atomic_load_umin_64 node:$a, node:$b)>;
1182*9880d681SAndroid Build Coastguard Workerdef atomic_load_umin_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1183*9880d681SAndroid Build Coastguard Worker  (atomic_load_umin_64 node:$a, node:$b)>;
1184*9880d681SAndroid Build Coastguard Workerdef atomic_load_umin_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1185*9880d681SAndroid Build Coastguard Worker  (atomic_load_umin_64 node:$a, node:$b)>;
1186*9880d681SAndroid Build Coastguard Worker
1187*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MIN_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".s32",
1188*9880d681SAndroid Build Coastguard Worker  ".min", atomic_load_min_32_g, i32imm, imm, hasAtomRedG32>;
1189*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MIN_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".s32",
1190*9880d681SAndroid Build Coastguard Worker  ".min", atomic_load_min_32_s, i32imm, imm, hasAtomRedS32>;
1191*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MIN_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".s32", ".min",
1192*9880d681SAndroid Build Coastguard Worker  atomic_load_min_32_gen, i32imm, imm, hasAtomRedGen32>;
1193*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MIN_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global",
1194*9880d681SAndroid Build Coastguard Worker  ".s32", ".min", atomic_load_min_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1195*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MIN_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".s64",
1196*9880d681SAndroid Build Coastguard Worker  ".min", atomic_load_min_64_g, i64imm, imm, hasAtomRedG64>;
1197*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MIN_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".s64",
1198*9880d681SAndroid Build Coastguard Worker  ".min", atomic_load_min_64_s, i64imm, imm, hasAtomRedS64>;
1199*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MIN_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".s64", ".min",
1200*9880d681SAndroid Build Coastguard Worker  atomic_load_min_64_gen, i64imm, imm, hasAtomRedGen64>;
1201*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_MIN_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global",
1202*9880d681SAndroid Build Coastguard Worker  ".s64", ".min", atomic_load_min_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1203*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMIN_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".u32",
1204*9880d681SAndroid Build Coastguard Worker  ".min", atomic_load_umin_32_g, i32imm, imm, hasAtomRedG32>;
1205*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMIN_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".u32",
1206*9880d681SAndroid Build Coastguard Worker  ".min", atomic_load_umin_32_s, i32imm, imm, hasAtomRedS32>;
1207*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMIN_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".u32", ".min",
1208*9880d681SAndroid Build Coastguard Worker  atomic_load_umin_32_gen, i32imm, imm, hasAtomRedGen32>;
1209*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMIN_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global",
1210*9880d681SAndroid Build Coastguard Worker  ".u32", ".min", atomic_load_umin_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1211*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMIN_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".u64",
1212*9880d681SAndroid Build Coastguard Worker  ".min", atomic_load_umin_64_g, i64imm, imm, hasAtomRedG64>;
1213*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMIN_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".u64",
1214*9880d681SAndroid Build Coastguard Worker  ".min", atomic_load_umin_64_s, i64imm, imm, hasAtomRedS64>;
1215*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMIN_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".u64", ".min",
1216*9880d681SAndroid Build Coastguard Worker  atomic_load_umin_64_gen, i64imm, imm, hasAtomRedGen64>;
1217*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_LOAD_UMIN_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global",
1218*9880d681SAndroid Build Coastguard Worker  ".u64", ".min", atomic_load_umin_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1219*9880d681SAndroid Build Coastguard Worker
1220*9880d681SAndroid Build Coastguard Worker// atom_inc  atom_dec
1221*9880d681SAndroid Build Coastguard Worker
1222*9880d681SAndroid Build Coastguard Workerdef atomic_load_inc_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1223*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_inc_32 node:$a, node:$b)>;
1224*9880d681SAndroid Build Coastguard Workerdef atomic_load_inc_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1225*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_inc_32 node:$a, node:$b)>;
1226*9880d681SAndroid Build Coastguard Workerdef atomic_load_inc_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1227*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_inc_32 node:$a, node:$b)>;
1228*9880d681SAndroid Build Coastguard Workerdef atomic_load_dec_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1229*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_dec_32 node:$a, node:$b)>;
1230*9880d681SAndroid Build Coastguard Workerdef atomic_load_dec_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1231*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_dec_32 node:$a, node:$b)>;
1232*9880d681SAndroid Build Coastguard Workerdef atomic_load_dec_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1233*9880d681SAndroid Build Coastguard Worker  (int_nvvm_atomic_load_dec_32 node:$a, node:$b)>;
1234*9880d681SAndroid Build Coastguard Worker
1235*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_INC_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".u32", ".inc",
1236*9880d681SAndroid Build Coastguard Worker  atomic_load_inc_32_g, i32imm, imm, hasAtomRedG32>;
1237*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_INC_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".u32", ".inc",
1238*9880d681SAndroid Build Coastguard Worker  atomic_load_inc_32_s, i32imm, imm, hasAtomRedS32>;
1239*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_INC_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".u32", ".inc",
1240*9880d681SAndroid Build Coastguard Worker  atomic_load_inc_32_gen, i32imm, imm, hasAtomRedGen32>;
1241*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_INC_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global", ".u32",
1242*9880d681SAndroid Build Coastguard Worker  ".inc", atomic_load_inc_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1243*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_DEC_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".u32", ".dec",
1244*9880d681SAndroid Build Coastguard Worker  atomic_load_dec_32_g, i32imm, imm, hasAtomRedG32>;
1245*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_DEC_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".u32", ".dec",
1246*9880d681SAndroid Build Coastguard Worker  atomic_load_dec_32_s, i32imm, imm, hasAtomRedS32>;
1247*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_DEC_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".u32", ".dec",
1248*9880d681SAndroid Build Coastguard Worker  atomic_load_dec_32_gen, i32imm, imm, hasAtomRedGen32>;
1249*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_DEC_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global", ".u32",
1250*9880d681SAndroid Build Coastguard Worker  ".dec", atomic_load_dec_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1251*9880d681SAndroid Build Coastguard Worker
1252*9880d681SAndroid Build Coastguard Worker// atom_and
1253*9880d681SAndroid Build Coastguard Worker
1254*9880d681SAndroid Build Coastguard Workerdef atomic_load_and_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1255*9880d681SAndroid Build Coastguard Worker  (atomic_load_and_32 node:$a, node:$b)>;
1256*9880d681SAndroid Build Coastguard Workerdef atomic_load_and_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1257*9880d681SAndroid Build Coastguard Worker  (atomic_load_and_32 node:$a, node:$b)>;
1258*9880d681SAndroid Build Coastguard Workerdef atomic_load_and_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1259*9880d681SAndroid Build Coastguard Worker  (atomic_load_and_32 node:$a, node:$b)>;
1260*9880d681SAndroid Build Coastguard Workerdef atomic_load_and_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1261*9880d681SAndroid Build Coastguard Worker  (atomic_load_and_64 node:$a, node:$b)>;
1262*9880d681SAndroid Build Coastguard Workerdef atomic_load_and_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1263*9880d681SAndroid Build Coastguard Worker  (atomic_load_and_64 node:$a, node:$b)>;
1264*9880d681SAndroid Build Coastguard Workerdef atomic_load_and_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1265*9880d681SAndroid Build Coastguard Worker  (atomic_load_and_64 node:$a, node:$b)>;
1266*9880d681SAndroid Build Coastguard Worker
1267*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_AND_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".b32", ".and",
1268*9880d681SAndroid Build Coastguard Worker  atomic_load_and_32_g, i32imm, imm, hasAtomRedG32>;
1269*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_AND_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".b32", ".and",
1270*9880d681SAndroid Build Coastguard Worker  atomic_load_and_32_s, i32imm, imm, hasAtomRedS32>;
1271*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_AND_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".b32", ".and",
1272*9880d681SAndroid Build Coastguard Worker  atomic_load_and_32_gen, i32imm, imm, hasAtomRedGen32>;
1273*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_AND_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global", ".b32",
1274*9880d681SAndroid Build Coastguard Worker  ".and", atomic_load_and_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1275*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_AND_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".b64", ".and",
1276*9880d681SAndroid Build Coastguard Worker  atomic_load_and_64_g, i64imm, imm, hasAtomRedG64>;
1277*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_AND_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".b64", ".and",
1278*9880d681SAndroid Build Coastguard Worker  atomic_load_and_64_s, i64imm, imm, hasAtomRedS64>;
1279*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_AND_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".b64", ".and",
1280*9880d681SAndroid Build Coastguard Worker  atomic_load_and_64_gen, i64imm, imm, hasAtomRedGen64>;
1281*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_AND_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global", ".b64",
1282*9880d681SAndroid Build Coastguard Worker  ".and", atomic_load_and_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1283*9880d681SAndroid Build Coastguard Worker
1284*9880d681SAndroid Build Coastguard Worker// atom_or
1285*9880d681SAndroid Build Coastguard Worker
1286*9880d681SAndroid Build Coastguard Workerdef atomic_load_or_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1287*9880d681SAndroid Build Coastguard Worker  (atomic_load_or_32 node:$a, node:$b)>;
1288*9880d681SAndroid Build Coastguard Workerdef atomic_load_or_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1289*9880d681SAndroid Build Coastguard Worker  (atomic_load_or_32 node:$a, node:$b)>;
1290*9880d681SAndroid Build Coastguard Workerdef atomic_load_or_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1291*9880d681SAndroid Build Coastguard Worker  (atomic_load_or_32 node:$a, node:$b)>;
1292*9880d681SAndroid Build Coastguard Workerdef atomic_load_or_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1293*9880d681SAndroid Build Coastguard Worker  (atomic_load_or_64 node:$a, node:$b)>;
1294*9880d681SAndroid Build Coastguard Workerdef atomic_load_or_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1295*9880d681SAndroid Build Coastguard Worker  (atomic_load_or_64 node:$a, node:$b)>;
1296*9880d681SAndroid Build Coastguard Workerdef atomic_load_or_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1297*9880d681SAndroid Build Coastguard Worker  (atomic_load_or_64 node:$a, node:$b)>;
1298*9880d681SAndroid Build Coastguard Worker
1299*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_OR_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".b32", ".or",
1300*9880d681SAndroid Build Coastguard Worker  atomic_load_or_32_g, i32imm, imm, hasAtomRedG32>;
1301*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_OR_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".b32", ".or",
1302*9880d681SAndroid Build Coastguard Worker  atomic_load_or_32_gen, i32imm, imm, hasAtomRedGen32>;
1303*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_OR_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global", ".b32",
1304*9880d681SAndroid Build Coastguard Worker  ".or", atomic_load_or_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1305*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_OR_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".b32", ".or",
1306*9880d681SAndroid Build Coastguard Worker  atomic_load_or_32_s, i32imm, imm, hasAtomRedS32>;
1307*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_OR_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".b64", ".or",
1308*9880d681SAndroid Build Coastguard Worker  atomic_load_or_64_g, i64imm, imm, hasAtomRedG64>;
1309*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_OR_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".b64", ".or",
1310*9880d681SAndroid Build Coastguard Worker  atomic_load_or_64_gen, i64imm, imm, hasAtomRedGen64>;
1311*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_OR_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global", ".b64",
1312*9880d681SAndroid Build Coastguard Worker  ".or", atomic_load_or_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1313*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_OR_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".b64", ".or",
1314*9880d681SAndroid Build Coastguard Worker  atomic_load_or_64_s, i64imm, imm, hasAtomRedS64>;
1315*9880d681SAndroid Build Coastguard Worker
1316*9880d681SAndroid Build Coastguard Worker// atom_xor
1317*9880d681SAndroid Build Coastguard Worker
1318*9880d681SAndroid Build Coastguard Workerdef atomic_load_xor_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1319*9880d681SAndroid Build Coastguard Worker  (atomic_load_xor_32 node:$a, node:$b)>;
1320*9880d681SAndroid Build Coastguard Workerdef atomic_load_xor_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1321*9880d681SAndroid Build Coastguard Worker  (atomic_load_xor_32 node:$a, node:$b)>;
1322*9880d681SAndroid Build Coastguard Workerdef atomic_load_xor_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1323*9880d681SAndroid Build Coastguard Worker  (atomic_load_xor_32 node:$a, node:$b)>;
1324*9880d681SAndroid Build Coastguard Workerdef atomic_load_xor_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b),
1325*9880d681SAndroid Build Coastguard Worker  (atomic_load_xor_64 node:$a, node:$b)>;
1326*9880d681SAndroid Build Coastguard Workerdef atomic_load_xor_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b),
1327*9880d681SAndroid Build Coastguard Worker  (atomic_load_xor_64 node:$a, node:$b)>;
1328*9880d681SAndroid Build Coastguard Workerdef atomic_load_xor_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b),
1329*9880d681SAndroid Build Coastguard Worker  (atomic_load_xor_64 node:$a, node:$b)>;
1330*9880d681SAndroid Build Coastguard Worker
1331*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_XOR_G_32 : F_ATOMIC_2<Int32Regs, ".global", ".b32", ".xor",
1332*9880d681SAndroid Build Coastguard Worker  atomic_load_xor_32_g, i32imm, imm, hasAtomRedG32>;
1333*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_XOR_S_32 : F_ATOMIC_2<Int32Regs, ".shared", ".b32", ".xor",
1334*9880d681SAndroid Build Coastguard Worker  atomic_load_xor_32_s, i32imm, imm, hasAtomRedS32>;
1335*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_XOR_GEN_32 : F_ATOMIC_2<Int32Regs, "", ".b32", ".xor",
1336*9880d681SAndroid Build Coastguard Worker  atomic_load_xor_32_gen, i32imm, imm, hasAtomRedGen32>;
1337*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_XOR_GEN_32_USE_G : F_ATOMIC_2<Int32Regs, ".global", ".b32",
1338*9880d681SAndroid Build Coastguard Worker  ".xor", atomic_load_xor_32_gen, i32imm, imm, useAtomRedG32forGen32>;
1339*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_XOR_G_64 : F_ATOMIC_2<Int64Regs, ".global", ".b64", ".xor",
1340*9880d681SAndroid Build Coastguard Worker  atomic_load_xor_64_g, i64imm, imm, hasAtomRedG64>;
1341*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_XOR_S_64 : F_ATOMIC_2<Int64Regs, ".shared", ".b64", ".xor",
1342*9880d681SAndroid Build Coastguard Worker  atomic_load_xor_64_s, i64imm, imm, hasAtomRedS64>;
1343*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_XOR_GEN_64 : F_ATOMIC_2<Int64Regs, "", ".b64", ".xor",
1344*9880d681SAndroid Build Coastguard Worker  atomic_load_xor_64_gen, i64imm, imm, hasAtomRedGen64>;
1345*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_XOR_GEN_64_USE_G : F_ATOMIC_2<Int64Regs, ".global", ".b64",
1346*9880d681SAndroid Build Coastguard Worker  ".xor", atomic_load_xor_64_gen, i64imm, imm, useAtomRedG64forGen64>;
1347*9880d681SAndroid Build Coastguard Worker
1348*9880d681SAndroid Build Coastguard Worker// atom_cas
1349*9880d681SAndroid Build Coastguard Worker
1350*9880d681SAndroid Build Coastguard Workerdef atomic_cmp_swap_32_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b, node:$c),
1351*9880d681SAndroid Build Coastguard Worker  (atomic_cmp_swap_32 node:$a, node:$b, node:$c)>;
1352*9880d681SAndroid Build Coastguard Workerdef atomic_cmp_swap_32_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b, node:$c),
1353*9880d681SAndroid Build Coastguard Worker  (atomic_cmp_swap_32 node:$a, node:$b, node:$c)>;
1354*9880d681SAndroid Build Coastguard Workerdef atomic_cmp_swap_32_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b, node:$c),
1355*9880d681SAndroid Build Coastguard Worker  (atomic_cmp_swap_32 node:$a, node:$b, node:$c)>;
1356*9880d681SAndroid Build Coastguard Workerdef atomic_cmp_swap_64_g: ATOMIC_GLOBAL_CHK<(ops node:$a, node:$b, node:$c),
1357*9880d681SAndroid Build Coastguard Worker  (atomic_cmp_swap_64 node:$a, node:$b, node:$c)>;
1358*9880d681SAndroid Build Coastguard Workerdef atomic_cmp_swap_64_s: ATOMIC_SHARED_CHK<(ops node:$a, node:$b, node:$c),
1359*9880d681SAndroid Build Coastguard Worker  (atomic_cmp_swap_64 node:$a, node:$b, node:$c)>;
1360*9880d681SAndroid Build Coastguard Workerdef atomic_cmp_swap_64_gen: ATOMIC_GENERIC_CHK<(ops node:$a, node:$b, node:$c),
1361*9880d681SAndroid Build Coastguard Worker  (atomic_cmp_swap_64 node:$a, node:$b, node:$c)>;
1362*9880d681SAndroid Build Coastguard Worker
1363*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_CAS_G_32 : F_ATOMIC_3<Int32Regs, ".global", ".b32", ".cas",
1364*9880d681SAndroid Build Coastguard Worker  atomic_cmp_swap_32_g, i32imm, hasAtomRedG32>;
1365*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_CAS_S_32 : F_ATOMIC_3<Int32Regs, ".shared", ".b32", ".cas",
1366*9880d681SAndroid Build Coastguard Worker  atomic_cmp_swap_32_s, i32imm, hasAtomRedS32>;
1367*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_CAS_GEN_32 : F_ATOMIC_3<Int32Regs, "", ".b32", ".cas",
1368*9880d681SAndroid Build Coastguard Worker  atomic_cmp_swap_32_gen, i32imm, hasAtomRedGen32>;
1369*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_CAS_GEN_32_USE_G : F_ATOMIC_3<Int32Regs, ".global", ".b32",
1370*9880d681SAndroid Build Coastguard Worker  ".cas", atomic_cmp_swap_32_gen, i32imm, useAtomRedG32forGen32>;
1371*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_CAS_G_64 : F_ATOMIC_3<Int64Regs, ".global", ".b64", ".cas",
1372*9880d681SAndroid Build Coastguard Worker  atomic_cmp_swap_64_g, i64imm, hasAtomRedG64>;
1373*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_CAS_S_64 : F_ATOMIC_3<Int64Regs, ".shared", ".b64", ".cas",
1374*9880d681SAndroid Build Coastguard Worker  atomic_cmp_swap_64_s, i64imm, hasAtomRedS64>;
1375*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_CAS_GEN_64 : F_ATOMIC_3<Int64Regs, "", ".b64", ".cas",
1376*9880d681SAndroid Build Coastguard Worker  atomic_cmp_swap_64_gen, i64imm, hasAtomRedGen64>;
1377*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_ATOM_CAS_GEN_64_USE_G : F_ATOMIC_3<Int64Regs, ".global", ".b64",
1378*9880d681SAndroid Build Coastguard Worker  ".cas", atomic_cmp_swap_64_gen, i64imm, useAtomRedG64forGen64>;
1379*9880d681SAndroid Build Coastguard Worker
1380*9880d681SAndroid Build Coastguard Worker
1381*9880d681SAndroid Build Coastguard Worker
1382*9880d681SAndroid Build Coastguard Worker
1383*9880d681SAndroid Build Coastguard Worker//-----------------------------------
1384*9880d681SAndroid Build Coastguard Worker// Support for ldu on sm_20 or later
1385*9880d681SAndroid Build Coastguard Worker//-----------------------------------
1386*9880d681SAndroid Build Coastguard Worker
1387*9880d681SAndroid Build Coastguard Worker// Don't annotate ldu instructions as mayLoad, as they load from memory that is
1388*9880d681SAndroid Build Coastguard Worker// read-only in a kernel.
1389*9880d681SAndroid Build Coastguard Worker
1390*9880d681SAndroid Build Coastguard Worker// Scalar
1391*9880d681SAndroid Build Coastguard Worker
1392*9880d681SAndroid Build Coastguard Workermulticlass LDU_G<string TyStr, NVPTXRegClass regclass> {
1393*9880d681SAndroid Build Coastguard Worker  def areg: NVPTXInst<(outs regclass:$result), (ins Int32Regs:$src),
1394*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr),
1395*9880d681SAndroid Build Coastguard Worker                      []>, Requires<[hasLDU]>;
1396*9880d681SAndroid Build Coastguard Worker  def areg64: NVPTXInst<(outs regclass:$result), (ins Int64Regs:$src),
1397*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr),
1398*9880d681SAndroid Build Coastguard Worker                        []>, Requires<[hasLDU]>;
1399*9880d681SAndroid Build Coastguard Worker def avar:  NVPTXInst<(outs regclass:$result), (ins imemAny:$src),
1400*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr),
1401*9880d681SAndroid Build Coastguard Worker                      []>, Requires<[hasLDU]>;
1402*9880d681SAndroid Build Coastguard Worker def ari :  NVPTXInst<(outs regclass:$result), (ins MEMri:$src),
1403*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr),
1404*9880d681SAndroid Build Coastguard Worker                      []>, Requires<[hasLDU]>;
1405*9880d681SAndroid Build Coastguard Worker def ari64 :  NVPTXInst<(outs regclass:$result), (ins MEMri64:$src),
1406*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr),
1407*9880d681SAndroid Build Coastguard Worker                        []>, Requires<[hasLDU]>;
1408*9880d681SAndroid Build Coastguard Worker}
1409*9880d681SAndroid Build Coastguard Worker
1410*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_GLOBAL_i8  : LDU_G<"u8 \t$result, [$src];", Int16Regs>;
1411*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_GLOBAL_i16 : LDU_G<"u16 \t$result, [$src];", Int16Regs>;
1412*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_GLOBAL_i32 : LDU_G<"u32 \t$result, [$src];", Int32Regs>;
1413*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_GLOBAL_i64 : LDU_G<"u64 \t$result, [$src];", Int64Regs>;
1414*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_GLOBAL_f32 : LDU_G<"f32 \t$result, [$src];", Float32Regs>;
1415*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_GLOBAL_f64 : LDU_G<"f64 \t$result, [$src];", Float64Regs>;
1416*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_GLOBAL_p32 : LDU_G<"u32 \t$result, [$src];", Int32Regs>;
1417*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_GLOBAL_p64 : LDU_G<"u64 \t$result, [$src];", Int64Regs>;
1418*9880d681SAndroid Build Coastguard Worker
1419*9880d681SAndroid Build Coastguard Worker// vector
1420*9880d681SAndroid Build Coastguard Worker
1421*9880d681SAndroid Build Coastguard Worker// Elementized vector ldu
1422*9880d681SAndroid Build Coastguard Workermulticlass VLDU_G_ELE_V2<string TyStr, NVPTXRegClass regclass> {
1423*9880d681SAndroid Build Coastguard Worker def _areg32: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1424*9880d681SAndroid Build Coastguard Worker                     (ins Int32Regs:$src),
1425*9880d681SAndroid Build Coastguard Worker                     !strconcat("ldu.global.", TyStr), []>;
1426*9880d681SAndroid Build Coastguard Worker def _areg64: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1427*9880d681SAndroid Build Coastguard Worker                     (ins Int64Regs:$src),
1428*9880d681SAndroid Build Coastguard Worker                     !strconcat("ldu.global.", TyStr), []>;
1429*9880d681SAndroid Build Coastguard Worker def _ari32: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1430*9880d681SAndroid Build Coastguard Worker                     (ins MEMri:$src),
1431*9880d681SAndroid Build Coastguard Worker                     !strconcat("ldu.global.", TyStr), []>;
1432*9880d681SAndroid Build Coastguard Worker def _ari64: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1433*9880d681SAndroid Build Coastguard Worker                     (ins MEMri64:$src),
1434*9880d681SAndroid Build Coastguard Worker                     !strconcat("ldu.global.", TyStr), []>;
1435*9880d681SAndroid Build Coastguard Worker def _avar: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1436*9880d681SAndroid Build Coastguard Worker                     (ins imemAny:$src),
1437*9880d681SAndroid Build Coastguard Worker                     !strconcat("ldu.global.", TyStr), []>;
1438*9880d681SAndroid Build Coastguard Worker}
1439*9880d681SAndroid Build Coastguard Worker
1440*9880d681SAndroid Build Coastguard Workermulticlass VLDU_G_ELE_V4<string TyStr, NVPTXRegClass regclass> {
1441*9880d681SAndroid Build Coastguard Worker def _areg32: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1442*9880d681SAndroid Build Coastguard Worker                            regclass:$dst4), (ins Int32Regs:$src),
1443*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr), []>;
1444*9880d681SAndroid Build Coastguard Worker def _areg64: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1445*9880d681SAndroid Build Coastguard Worker                            regclass:$dst4), (ins Int64Regs:$src),
1446*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr), []>;
1447*9880d681SAndroid Build Coastguard Worker def _ari32: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1448*9880d681SAndroid Build Coastguard Worker                            regclass:$dst4), (ins MEMri:$src),
1449*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr), []>;
1450*9880d681SAndroid Build Coastguard Worker def _ari64: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1451*9880d681SAndroid Build Coastguard Worker                            regclass:$dst4), (ins MEMri64:$src),
1452*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr), []>;
1453*9880d681SAndroid Build Coastguard Worker def _avar: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1454*9880d681SAndroid Build Coastguard Worker                            regclass:$dst4), (ins imemAny:$src),
1455*9880d681SAndroid Build Coastguard Worker               !strconcat("ldu.global.", TyStr), []>;
1456*9880d681SAndroid Build Coastguard Worker}
1457*9880d681SAndroid Build Coastguard Worker
1458*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v2i8_ELE
1459*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V2<"v2.u8 \t{{$dst1, $dst2}}, [$src];",  Int16Regs>;
1460*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v2i16_ELE
1461*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V2<"v2.u16 \t{{$dst1, $dst2}}, [$src];", Int16Regs>;
1462*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v2i32_ELE
1463*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V2<"v2.u32 \t{{$dst1, $dst2}}, [$src];", Int32Regs>;
1464*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v2f32_ELE
1465*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V2<"v2.f32 \t{{$dst1, $dst2}}, [$src];", Float32Regs>;
1466*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v2i64_ELE
1467*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V2<"v2.u64 \t{{$dst1, $dst2}}, [$src];", Int64Regs>;
1468*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v2f64_ELE
1469*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V2<"v2.f64 \t{{$dst1, $dst2}}, [$src];", Float64Regs>;
1470*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v4i8_ELE
1471*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V4<"v4.u8 \t{{$dst1, $dst2, $dst3, $dst4}}, [$src];", Int16Regs>;
1472*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v4i16_ELE
1473*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V4<"v4.u16 \t{{$dst1, $dst2, $dst3, $dst4}}, [$src];",
1474*9880d681SAndroid Build Coastguard Worker    Int16Regs>;
1475*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v4i32_ELE
1476*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V4<"v4.u32 \t{{$dst1, $dst2, $dst3, $dst4}}, [$src];",
1477*9880d681SAndroid Build Coastguard Worker    Int32Regs>;
1478*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDU_G_v4f32_ELE
1479*9880d681SAndroid Build Coastguard Worker  : VLDU_G_ELE_V4<"v4.f32 \t{{$dst1, $dst2, $dst3, $dst4}}, [$src];",
1480*9880d681SAndroid Build Coastguard Worker    Float32Regs>;
1481*9880d681SAndroid Build Coastguard Worker
1482*9880d681SAndroid Build Coastguard Worker
1483*9880d681SAndroid Build Coastguard Worker//-----------------------------------
1484*9880d681SAndroid Build Coastguard Worker// Support for ldg on sm_35 or later
1485*9880d681SAndroid Build Coastguard Worker//-----------------------------------
1486*9880d681SAndroid Build Coastguard Worker
1487*9880d681SAndroid Build Coastguard Worker// Don't annotate ld.global.nc as mayLoad, because these loads go through the
1488*9880d681SAndroid Build Coastguard Worker// non-coherent texture cache, and therefore the values read must be read-only
1489*9880d681SAndroid Build Coastguard Worker// during the lifetime of the kernel.
1490*9880d681SAndroid Build Coastguard Worker
1491*9880d681SAndroid Build Coastguard Workermulticlass LDG_G<string TyStr, NVPTXRegClass regclass> {
1492*9880d681SAndroid Build Coastguard Worker  def areg: NVPTXInst<(outs regclass:$result), (ins Int32Regs:$src),
1493*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr),
1494*9880d681SAndroid Build Coastguard Worker                      []>, Requires<[hasLDG]>;
1495*9880d681SAndroid Build Coastguard Worker  def areg64: NVPTXInst<(outs regclass:$result), (ins Int64Regs:$src),
1496*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr),
1497*9880d681SAndroid Build Coastguard Worker                        []>, Requires<[hasLDG]>;
1498*9880d681SAndroid Build Coastguard Worker def avar:  NVPTXInst<(outs regclass:$result), (ins imemAny:$src),
1499*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr),
1500*9880d681SAndroid Build Coastguard Worker                      []>, Requires<[hasLDG]>;
1501*9880d681SAndroid Build Coastguard Worker def ari :  NVPTXInst<(outs regclass:$result), (ins MEMri:$src),
1502*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr),
1503*9880d681SAndroid Build Coastguard Worker                      []>, Requires<[hasLDG]>;
1504*9880d681SAndroid Build Coastguard Worker def ari64 :  NVPTXInst<(outs regclass:$result), (ins MEMri64:$src),
1505*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr),
1506*9880d681SAndroid Build Coastguard Worker                        []>, Requires<[hasLDG]>;
1507*9880d681SAndroid Build Coastguard Worker}
1508*9880d681SAndroid Build Coastguard Worker
1509*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_GLOBAL_i8
1510*9880d681SAndroid Build Coastguard Worker  : LDG_G<"u8 \t$result, [$src];", Int16Regs>;
1511*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_GLOBAL_i16
1512*9880d681SAndroid Build Coastguard Worker  : LDG_G<"u16 \t$result, [$src];", Int16Regs>;
1513*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_GLOBAL_i32
1514*9880d681SAndroid Build Coastguard Worker  : LDG_G<"u32 \t$result, [$src];", Int32Regs>;
1515*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_GLOBAL_i64
1516*9880d681SAndroid Build Coastguard Worker  : LDG_G<"u64 \t$result, [$src];", Int64Regs>;
1517*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_GLOBAL_f32
1518*9880d681SAndroid Build Coastguard Worker  : LDG_G<"f32 \t$result, [$src];", Float32Regs>;
1519*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_GLOBAL_f64
1520*9880d681SAndroid Build Coastguard Worker  : LDG_G<"f64 \t$result, [$src];", Float64Regs>;
1521*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_GLOBAL_p32
1522*9880d681SAndroid Build Coastguard Worker  : LDG_G<"u32 \t$result, [$src];", Int32Regs>;
1523*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_GLOBAL_p64
1524*9880d681SAndroid Build Coastguard Worker  : LDG_G<"u64 \t$result, [$src];", Int64Regs>;
1525*9880d681SAndroid Build Coastguard Worker
1526*9880d681SAndroid Build Coastguard Worker// vector
1527*9880d681SAndroid Build Coastguard Worker
1528*9880d681SAndroid Build Coastguard Worker// Elementized vector ldg
1529*9880d681SAndroid Build Coastguard Workermulticlass VLDG_G_ELE_V2<string TyStr, NVPTXRegClass regclass> {
1530*9880d681SAndroid Build Coastguard Worker def _areg32: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1531*9880d681SAndroid Build Coastguard Worker                     (ins Int32Regs:$src),
1532*9880d681SAndroid Build Coastguard Worker                     !strconcat("ld.global.nc.", TyStr), []>;
1533*9880d681SAndroid Build Coastguard Worker def _areg64: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1534*9880d681SAndroid Build Coastguard Worker                     (ins Int64Regs:$src),
1535*9880d681SAndroid Build Coastguard Worker                     !strconcat("ld.global.nc.", TyStr), []>;
1536*9880d681SAndroid Build Coastguard Worker def _ari32: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1537*9880d681SAndroid Build Coastguard Worker                     (ins MEMri:$src),
1538*9880d681SAndroid Build Coastguard Worker                     !strconcat("ld.global.nc.", TyStr), []>;
1539*9880d681SAndroid Build Coastguard Worker def _ari64: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1540*9880d681SAndroid Build Coastguard Worker                     (ins MEMri64:$src),
1541*9880d681SAndroid Build Coastguard Worker                     !strconcat("ld.global.nc.", TyStr), []>;
1542*9880d681SAndroid Build Coastguard Worker def _avar: NVPTXInst<(outs regclass:$dst1, regclass:$dst2),
1543*9880d681SAndroid Build Coastguard Worker                     (ins imemAny:$src),
1544*9880d681SAndroid Build Coastguard Worker                     !strconcat("ld.global.nc.", TyStr), []>;
1545*9880d681SAndroid Build Coastguard Worker}
1546*9880d681SAndroid Build Coastguard Worker
1547*9880d681SAndroid Build Coastguard Workermulticlass VLDG_G_ELE_V4<string TyStr, NVPTXRegClass regclass> {
1548*9880d681SAndroid Build Coastguard Worker  def _areg32: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1549*9880d681SAndroid Build Coastguard Worker                              regclass:$dst4), (ins Int32Regs:$src),
1550*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr), []>;
1551*9880d681SAndroid Build Coastguard Worker  def _areg64: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1552*9880d681SAndroid Build Coastguard Worker                               regclass:$dst4), (ins Int64Regs:$src),
1553*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr), []>;
1554*9880d681SAndroid Build Coastguard Worker  def _ari32: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1555*9880d681SAndroid Build Coastguard Worker                              regclass:$dst4), (ins MEMri:$src),
1556*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr), []>;
1557*9880d681SAndroid Build Coastguard Worker  def _ari64: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1558*9880d681SAndroid Build Coastguard Worker                              regclass:$dst4), (ins MEMri64:$src),
1559*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr), []>;
1560*9880d681SAndroid Build Coastguard Worker  def _avar: NVPTXInst<(outs regclass:$dst1, regclass:$dst2, regclass:$dst3,
1561*9880d681SAndroid Build Coastguard Worker                             regclass:$dst4), (ins imemAny:$src),
1562*9880d681SAndroid Build Coastguard Worker               !strconcat("ld.global.nc.", TyStr), []>;
1563*9880d681SAndroid Build Coastguard Worker}
1564*9880d681SAndroid Build Coastguard Worker
1565*9880d681SAndroid Build Coastguard Worker// FIXME: 8-bit LDG should be fixed once LDG/LDU nodes are made into proper loads.
1566*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v2i8_ELE
1567*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V2<"v2.u8 \t{{$dst1, $dst2}}, [$src];",  Int16Regs>;
1568*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v2i16_ELE
1569*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V2<"v2.u16 \t{{$dst1, $dst2}}, [$src];", Int16Regs>;
1570*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v2i32_ELE
1571*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V2<"v2.u32 \t{{$dst1, $dst2}}, [$src];", Int32Regs>;
1572*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v2f32_ELE
1573*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V2<"v2.f32 \t{{$dst1, $dst2}}, [$src];", Float32Regs>;
1574*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v2i64_ELE
1575*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V2<"v2.u64 \t{{$dst1, $dst2}}, [$src];", Int64Regs>;
1576*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v2f64_ELE
1577*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V2<"v2.f64 \t{{$dst1, $dst2}}, [$src];", Float64Regs>;
1578*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v4i8_ELE
1579*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V4<"v4.u8 \t{{$dst1, $dst2, $dst3, $dst4}}, [$src];", Int16Regs>;
1580*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v4i16_ELE
1581*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V4<"v4.u16 \t{{$dst1, $dst2, $dst3, $dst4}}, [$src];", Int16Regs>;
1582*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v4i32_ELE
1583*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V4<"v4.u32 \t{{$dst1, $dst2, $dst3, $dst4}}, [$src];", Int32Regs>;
1584*9880d681SAndroid Build Coastguard Workerdefm INT_PTX_LDG_G_v4f32_ELE
1585*9880d681SAndroid Build Coastguard Worker  : VLDG_G_ELE_V4<"v4.f32 \t{{$dst1, $dst2, $dst3, $dst4}}, [$src];", Float32Regs>;
1586*9880d681SAndroid Build Coastguard Worker
1587*9880d681SAndroid Build Coastguard Worker
1588*9880d681SAndroid Build Coastguard Workermulticlass NG_TO_G<string Str, Intrinsic Intrin> {
1589*9880d681SAndroid Build Coastguard Worker   def _yes : NVPTXInst<(outs Int32Regs:$result), (ins Int32Regs:$src),
1590*9880d681SAndroid Build Coastguard Worker          !strconcat("cvta.", !strconcat(Str, ".u32 \t$result, $src;")),
1591*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$result, (Intrin Int32Regs:$src))]>,
1592*9880d681SAndroid Build Coastguard Worker   Requires<[hasGenericLdSt]>;
1593*9880d681SAndroid Build Coastguard Worker   def _yes_64 : NVPTXInst<(outs Int64Regs:$result), (ins Int64Regs:$src),
1594*9880d681SAndroid Build Coastguard Worker          !strconcat("cvta.", !strconcat(Str, ".u64 \t$result, $src;")),
1595*9880d681SAndroid Build Coastguard Worker      [(set Int64Regs:$result, (Intrin Int64Regs:$src))]>,
1596*9880d681SAndroid Build Coastguard Worker   Requires<[hasGenericLdSt]>;
1597*9880d681SAndroid Build Coastguard Worker
1598*9880d681SAndroid Build Coastguard Worker// @TODO: Are these actually needed?  I believe global addresses will be copied
1599*9880d681SAndroid Build Coastguard Worker// to register values anyway.
1600*9880d681SAndroid Build Coastguard Worker   /*def __addr_yes : NVPTXInst<(outs Int32Regs:$result), (ins imemAny:$src),
1601*9880d681SAndroid Build Coastguard Worker          !strconcat("cvta.", !strconcat(Str, ".u32 \t$result, $src;")),
1602*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$result, (Intrin (Wrapper tglobaladdr:$src)))]>,
1603*9880d681SAndroid Build Coastguard Worker      Requires<[hasGenericLdSt]>;
1604*9880d681SAndroid Build Coastguard Worker   def __addr_yes_64 : NVPTXInst<(outs Int64Regs:$result), (ins imemAny:$src),
1605*9880d681SAndroid Build Coastguard Worker          !strconcat("cvta.", !strconcat(Str, ".u64 \t$result, $src;")),
1606*9880d681SAndroid Build Coastguard Worker      [(set Int64Regs:$result, (Intrin (Wrapper tglobaladdr:$src)))]>,
1607*9880d681SAndroid Build Coastguard Worker      Requires<[hasGenericLdSt]>;*/
1608*9880d681SAndroid Build Coastguard Worker
1609*9880d681SAndroid Build Coastguard Worker   def _no : NVPTXInst<(outs Int32Regs:$result), (ins Int32Regs:$src),
1610*9880d681SAndroid Build Coastguard Worker          "mov.u32 \t$result, $src;",
1611*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$result, (Intrin Int32Regs:$src))]>;
1612*9880d681SAndroid Build Coastguard Worker   def _no_64 : NVPTXInst<(outs Int64Regs:$result), (ins Int64Regs:$src),
1613*9880d681SAndroid Build Coastguard Worker          "mov.u64 \t$result, $src;",
1614*9880d681SAndroid Build Coastguard Worker      [(set Int64Regs:$result, (Intrin Int64Regs:$src))]>;
1615*9880d681SAndroid Build Coastguard Worker
1616*9880d681SAndroid Build Coastguard Worker// @TODO: Are these actually needed?  I believe global addresses will be copied
1617*9880d681SAndroid Build Coastguard Worker// to register values anyway.
1618*9880d681SAndroid Build Coastguard Worker   /*def _addr_no : NVPTXInst<(outs Int32Regs:$result), (ins imem:$src),
1619*9880d681SAndroid Build Coastguard Worker          "mov.u32 \t$result, $src;",
1620*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$result, (Intrin (Wrapper tglobaladdr:$src)))]>;
1621*9880d681SAndroid Build Coastguard Worker   def _addr_no_64 : NVPTXInst<(outs Int64Regs:$result), (ins imem:$src),
1622*9880d681SAndroid Build Coastguard Worker          "mov.u64 \t$result, $src;",
1623*9880d681SAndroid Build Coastguard Worker      [(set Int64Regs:$result, (Intrin (Wrapper tglobaladdr:$src)))]>;*/
1624*9880d681SAndroid Build Coastguard Worker}
1625*9880d681SAndroid Build Coastguard Worker
1626*9880d681SAndroid Build Coastguard Workermulticlass G_TO_NG<string Str, Intrinsic Intrin> {
1627*9880d681SAndroid Build Coastguard Worker   def _yes : NVPTXInst<(outs Int32Regs:$result), (ins Int32Regs:$src),
1628*9880d681SAndroid Build Coastguard Worker          !strconcat("cvta.to.", !strconcat(Str, ".u32 \t$result, $src;")),
1629*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$result, (Intrin Int32Regs:$src))]>,
1630*9880d681SAndroid Build Coastguard Worker   Requires<[hasGenericLdSt]>;
1631*9880d681SAndroid Build Coastguard Worker   def _yes_64 : NVPTXInst<(outs Int64Regs:$result), (ins Int64Regs:$src),
1632*9880d681SAndroid Build Coastguard Worker          !strconcat("cvta.to.", !strconcat(Str, ".u64 \t$result, $src;")),
1633*9880d681SAndroid Build Coastguard Worker      [(set Int64Regs:$result, (Intrin Int64Regs:$src))]>,
1634*9880d681SAndroid Build Coastguard Worker   Requires<[hasGenericLdSt]>;
1635*9880d681SAndroid Build Coastguard Worker   def _no : NVPTXInst<(outs Int32Regs:$result), (ins Int32Regs:$src),
1636*9880d681SAndroid Build Coastguard Worker          "mov.u32 \t$result, $src;",
1637*9880d681SAndroid Build Coastguard Worker      [(set Int32Regs:$result, (Intrin Int32Regs:$src))]>;
1638*9880d681SAndroid Build Coastguard Worker   def _no_64 : NVPTXInst<(outs Int64Regs:$result), (ins Int64Regs:$src),
1639*9880d681SAndroid Build Coastguard Worker          "mov.u64 \t$result, $src;",
1640*9880d681SAndroid Build Coastguard Worker      [(set Int64Regs:$result, (Intrin Int64Regs:$src))]>;
1641*9880d681SAndroid Build Coastguard Worker}
1642*9880d681SAndroid Build Coastguard Worker
1643*9880d681SAndroid Build Coastguard Workerdefm cvta_local  : NG_TO_G<"local", int_nvvm_ptr_local_to_gen>;
1644*9880d681SAndroid Build Coastguard Workerdefm cvta_shared : NG_TO_G<"shared", int_nvvm_ptr_shared_to_gen>;
1645*9880d681SAndroid Build Coastguard Workerdefm cvta_global : NG_TO_G<"global", int_nvvm_ptr_global_to_gen>;
1646*9880d681SAndroid Build Coastguard Workerdefm cvta_const  : NG_TO_G<"const", int_nvvm_ptr_constant_to_gen>;
1647*9880d681SAndroid Build Coastguard Worker
1648*9880d681SAndroid Build Coastguard Workerdefm cvta_to_local   : G_TO_NG<"local", int_nvvm_ptr_gen_to_local>;
1649*9880d681SAndroid Build Coastguard Workerdefm cvta_to_shared : G_TO_NG<"shared", int_nvvm_ptr_gen_to_shared>;
1650*9880d681SAndroid Build Coastguard Workerdefm cvta_to_global : G_TO_NG<"global", int_nvvm_ptr_gen_to_global>;
1651*9880d681SAndroid Build Coastguard Workerdefm cvta_to_const  : G_TO_NG<"const", int_nvvm_ptr_gen_to_constant>;
1652*9880d681SAndroid Build Coastguard Worker
1653*9880d681SAndroid Build Coastguard Worker
1654*9880d681SAndroid Build Coastguard Worker// nvvm.ptr.gen.to.param
1655*9880d681SAndroid Build Coastguard Workerdef nvvm_ptr_gen_to_param : NVPTXInst<(outs Int32Regs:$result),
1656*9880d681SAndroid Build Coastguard Worker  (ins Int32Regs:$src),
1657*9880d681SAndroid Build Coastguard Worker                        "mov.u32 \t$result, $src;",
1658*9880d681SAndroid Build Coastguard Worker                              [(set Int32Regs:$result,
1659*9880d681SAndroid Build Coastguard Worker                                (int_nvvm_ptr_gen_to_param Int32Regs:$src))]>;
1660*9880d681SAndroid Build Coastguard Workerdef nvvm_ptr_gen_to_param_64 : NVPTXInst<(outs Int64Regs:$result),
1661*9880d681SAndroid Build Coastguard Worker  (ins Int64Regs:$src),
1662*9880d681SAndroid Build Coastguard Worker                        "mov.u64 \t$result, $src;",
1663*9880d681SAndroid Build Coastguard Worker                              [(set Int64Regs:$result,
1664*9880d681SAndroid Build Coastguard Worker                                (int_nvvm_ptr_gen_to_param Int64Regs:$src))]>;
1665*9880d681SAndroid Build Coastguard Worker
1666*9880d681SAndroid Build Coastguard Worker
1667*9880d681SAndroid Build Coastguard Worker// nvvm.move intrinsicc
1668*9880d681SAndroid Build Coastguard Workerdef nvvm_move_i16 : NVPTXInst<(outs Int16Regs:$r), (ins Int16Regs:$s),
1669*9880d681SAndroid Build Coastguard Worker                             "mov.b16 \t$r, $s;",
1670*9880d681SAndroid Build Coastguard Worker                             [(set Int16Regs:$r,
1671*9880d681SAndroid Build Coastguard Worker                               (int_nvvm_move_i16 Int16Regs:$s))]>;
1672*9880d681SAndroid Build Coastguard Workerdef nvvm_move_i32 : NVPTXInst<(outs Int32Regs:$r), (ins Int32Regs:$s),
1673*9880d681SAndroid Build Coastguard Worker                             "mov.b32 \t$r, $s;",
1674*9880d681SAndroid Build Coastguard Worker                             [(set Int32Regs:$r,
1675*9880d681SAndroid Build Coastguard Worker                               (int_nvvm_move_i32 Int32Regs:$s))]>;
1676*9880d681SAndroid Build Coastguard Workerdef nvvm_move_i64 : NVPTXInst<(outs Int64Regs:$r), (ins Int64Regs:$s),
1677*9880d681SAndroid Build Coastguard Worker                             "mov.b64 \t$r, $s;",
1678*9880d681SAndroid Build Coastguard Worker                             [(set Int64Regs:$r,
1679*9880d681SAndroid Build Coastguard Worker                               (int_nvvm_move_i64 Int64Regs:$s))]>;
1680*9880d681SAndroid Build Coastguard Workerdef nvvm_move_float : NVPTXInst<(outs Float32Regs:$r), (ins Float32Regs:$s),
1681*9880d681SAndroid Build Coastguard Worker                             "mov.f32 \t$r, $s;",
1682*9880d681SAndroid Build Coastguard Worker                             [(set Float32Regs:$r,
1683*9880d681SAndroid Build Coastguard Worker                               (int_nvvm_move_float Float32Regs:$s))]>;
1684*9880d681SAndroid Build Coastguard Workerdef nvvm_move_double : NVPTXInst<(outs Float64Regs:$r), (ins Float64Regs:$s),
1685*9880d681SAndroid Build Coastguard Worker                             "mov.f64 \t$r, $s;",
1686*9880d681SAndroid Build Coastguard Worker                             [(set Float64Regs:$r,
1687*9880d681SAndroid Build Coastguard Worker                               (int_nvvm_move_double Float64Regs:$s))]>;
1688*9880d681SAndroid Build Coastguard Workerdef nvvm_move_ptr32 : NVPTXInst<(outs Int32Regs:$r), (ins Int32Regs:$s),
1689*9880d681SAndroid Build Coastguard Worker                             "mov.u32 \t$r, $s;",
1690*9880d681SAndroid Build Coastguard Worker                             [(set Int32Regs:$r,
1691*9880d681SAndroid Build Coastguard Worker                               (int_nvvm_move_ptr Int32Regs:$s))]>;
1692*9880d681SAndroid Build Coastguard Workerdef nvvm_move_ptr64 : NVPTXInst<(outs Int64Regs:$r), (ins Int64Regs:$s),
1693*9880d681SAndroid Build Coastguard Worker                             "mov.u64 \t$r, $s;",
1694*9880d681SAndroid Build Coastguard Worker                             [(set Int64Regs:$r,
1695*9880d681SAndroid Build Coastguard Worker                               (int_nvvm_move_ptr Int64Regs:$s))]>;
1696*9880d681SAndroid Build Coastguard Worker
1697*9880d681SAndroid Build Coastguard Worker// @TODO: Are these actually needed, or will we always just see symbols
1698*9880d681SAndroid Build Coastguard Worker// copied to registers first?
1699*9880d681SAndroid Build Coastguard Worker/*def nvvm_move_sym32 : NVPTXInst<(outs Int32Regs:$r), (ins imem:$s),
1700*9880d681SAndroid Build Coastguard Worker                             "mov.u32 \t$r, $s;",
1701*9880d681SAndroid Build Coastguard Worker                             [(set Int32Regs:$r,
1702*9880d681SAndroid Build Coastguard Worker                             (int_nvvm_move_ptr texternalsym:$s))]>;
1703*9880d681SAndroid Build Coastguard Workerdef nvvm_move_sym64 : NVPTXInst<(outs Int64Regs:$r), (ins imem:$s),
1704*9880d681SAndroid Build Coastguard Worker                             "mov.u64 \t$r, $s;",
1705*9880d681SAndroid Build Coastguard Worker                             [(set Int64Regs:$r,
1706*9880d681SAndroid Build Coastguard Worker                             (int_nvvm_move_ptr texternalsym:$s))]>;*/
1707*9880d681SAndroid Build Coastguard Worker
1708*9880d681SAndroid Build Coastguard Worker
1709*9880d681SAndroid Build Coastguard Worker// MoveParam        %r1, param
1710*9880d681SAndroid Build Coastguard Worker// ptr_local_to_gen %r2, %r1
1711*9880d681SAndroid Build Coastguard Worker// ptr_gen_to_local %r3, %r2
1712*9880d681SAndroid Build Coastguard Worker// ->
1713*9880d681SAndroid Build Coastguard Worker// mov %r1, param
1714*9880d681SAndroid Build Coastguard Worker
1715*9880d681SAndroid Build Coastguard Worker// @TODO: Revisit this.  There is a type
1716*9880d681SAndroid Build Coastguard Worker// contradiction between iPTRAny and iPTR for the addr defs, so the move_sym
1717*9880d681SAndroid Build Coastguard Worker// instructions are not currently defined. However, we can use the ptr
1718*9880d681SAndroid Build Coastguard Worker// variants and the asm printer will do the right thing.
1719*9880d681SAndroid Build Coastguard Workerdef : Pat<(i64 (int_nvvm_ptr_gen_to_local (int_nvvm_ptr_local_to_gen
1720*9880d681SAndroid Build Coastguard Worker                (MoveParam texternalsym:$src)))),
1721*9880d681SAndroid Build Coastguard Worker               (nvvm_move_ptr64  texternalsym:$src)>;
1722*9880d681SAndroid Build Coastguard Workerdef : Pat<(i32 (int_nvvm_ptr_gen_to_local (int_nvvm_ptr_local_to_gen
1723*9880d681SAndroid Build Coastguard Worker                (MoveParam texternalsym:$src)))),
1724*9880d681SAndroid Build Coastguard Worker               (nvvm_move_ptr32  texternalsym:$src)>;
1725*9880d681SAndroid Build Coastguard Worker
1726*9880d681SAndroid Build Coastguard Workerdef texsurf_handles
1727*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$result), (ins imem:$src),
1728*9880d681SAndroid Build Coastguard Worker              "mov.u64 \t$result, $src;", []>;
1729*9880d681SAndroid Build Coastguard Worker
1730*9880d681SAndroid Build Coastguard Worker//-----------------------------------
1731*9880d681SAndroid Build Coastguard Worker// Compiler Error Warn
1732*9880d681SAndroid Build Coastguard Worker// - Just ignore them in codegen
1733*9880d681SAndroid Build Coastguard Worker//-----------------------------------
1734*9880d681SAndroid Build Coastguard Worker
1735*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_COMPILER_WARN_32 : NVPTXInst<(outs), (ins Int32Regs:$a),
1736*9880d681SAndroid Build Coastguard Worker                "// llvm.nvvm.compiler.warn()",
1737*9880d681SAndroid Build Coastguard Worker                [(int_nvvm_compiler_warn Int32Regs:$a)]>;
1738*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_COMPILER_WARN_64 : NVPTXInst<(outs), (ins Int64Regs:$a),
1739*9880d681SAndroid Build Coastguard Worker                "// llvm.nvvm.compiler.warn()",
1740*9880d681SAndroid Build Coastguard Worker                [(int_nvvm_compiler_warn Int64Regs:$a)]>;
1741*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_COMPILER_ERROR_32 : NVPTXInst<(outs), (ins Int32Regs:$a),
1742*9880d681SAndroid Build Coastguard Worker                "// llvm.nvvm.compiler.error()",
1743*9880d681SAndroid Build Coastguard Worker                [(int_nvvm_compiler_error Int32Regs:$a)]>;
1744*9880d681SAndroid Build Coastguard Workerdef INT_NVVM_COMPILER_ERROR_64 : NVPTXInst<(outs), (ins Int64Regs:$a),
1745*9880d681SAndroid Build Coastguard Worker                "// llvm.nvvm.compiler.error()",
1746*9880d681SAndroid Build Coastguard Worker                [(int_nvvm_compiler_error Int64Regs:$a)]>;
1747*9880d681SAndroid Build Coastguard Worker
1748*9880d681SAndroid Build Coastguard Worker
1749*9880d681SAndroid Build Coastguard Worker// isspacep
1750*9880d681SAndroid Build Coastguard Worker
1751*9880d681SAndroid Build Coastguard Workerdef ISSPACEP_CONST_32
1752*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int32Regs:$a),
1753*9880d681SAndroid Build Coastguard Worker              "isspacep.const \t$d, $a;",
1754*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_isspacep_const Int32Regs:$a))]>,
1755*9880d681SAndroid Build Coastguard Worker    Requires<[hasPTX31]>;
1756*9880d681SAndroid Build Coastguard Workerdef ISSPACEP_CONST_64
1757*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int64Regs:$a),
1758*9880d681SAndroid Build Coastguard Worker              "isspacep.const \t$d, $a;",
1759*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_isspacep_const Int64Regs:$a))]>,
1760*9880d681SAndroid Build Coastguard Worker    Requires<[hasPTX31]>;
1761*9880d681SAndroid Build Coastguard Workerdef ISSPACEP_GLOBAL_32
1762*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int32Regs:$a),
1763*9880d681SAndroid Build Coastguard Worker              "isspacep.global \t$d, $a;",
1764*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_isspacep_global Int32Regs:$a))]>;
1765*9880d681SAndroid Build Coastguard Workerdef ISSPACEP_GLOBAL_64
1766*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int64Regs:$a),
1767*9880d681SAndroid Build Coastguard Worker              "isspacep.global \t$d, $a;",
1768*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_isspacep_global Int64Regs:$a))]>;
1769*9880d681SAndroid Build Coastguard Workerdef ISSPACEP_LOCAL_32
1770*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int32Regs:$a),
1771*9880d681SAndroid Build Coastguard Worker              "isspacep.local \t$d, $a;",
1772*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_isspacep_local Int32Regs:$a))]>;
1773*9880d681SAndroid Build Coastguard Workerdef ISSPACEP_LOCAL_64
1774*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int64Regs:$a),
1775*9880d681SAndroid Build Coastguard Worker              "isspacep.local \t$d, $a;",
1776*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_isspacep_local Int64Regs:$a))]>;
1777*9880d681SAndroid Build Coastguard Workerdef ISSPACEP_SHARED_32
1778*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int32Regs:$a),
1779*9880d681SAndroid Build Coastguard Worker              "isspacep.shared \t$d, $a;",
1780*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_isspacep_shared Int32Regs:$a))]>;
1781*9880d681SAndroid Build Coastguard Workerdef ISSPACEP_SHARED_64
1782*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int64Regs:$a),
1783*9880d681SAndroid Build Coastguard Worker              "isspacep.shared \t$d, $a;",
1784*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_isspacep_shared Int64Regs:$a))]>;
1785*9880d681SAndroid Build Coastguard Worker
1786*9880d681SAndroid Build Coastguard Worker
1787*9880d681SAndroid Build Coastguard Worker// Special register reads
1788*9880d681SAndroid Build Coastguard Workerdef MOV_SPECIAL : NVPTXInst<(outs Int32Regs:$d),
1789*9880d681SAndroid Build Coastguard Worker                            (ins SpecialRegs:$r),
1790*9880d681SAndroid Build Coastguard Worker                            "mov.b32\t$d, $r;", []>;
1791*9880d681SAndroid Build Coastguard Worker
1792*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg0), (MOV_SPECIAL ENVREG0)>;
1793*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg1), (MOV_SPECIAL ENVREG1)>;
1794*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg2), (MOV_SPECIAL ENVREG2)>;
1795*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg3), (MOV_SPECIAL ENVREG3)>;
1796*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg4), (MOV_SPECIAL ENVREG4)>;
1797*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg5), (MOV_SPECIAL ENVREG5)>;
1798*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg6), (MOV_SPECIAL ENVREG6)>;
1799*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg7), (MOV_SPECIAL ENVREG7)>;
1800*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg8), (MOV_SPECIAL ENVREG8)>;
1801*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg9), (MOV_SPECIAL ENVREG9)>;
1802*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg10), (MOV_SPECIAL ENVREG10)>;
1803*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg11), (MOV_SPECIAL ENVREG11)>;
1804*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg12), (MOV_SPECIAL ENVREG12)>;
1805*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg13), (MOV_SPECIAL ENVREG13)>;
1806*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg14), (MOV_SPECIAL ENVREG14)>;
1807*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg15), (MOV_SPECIAL ENVREG15)>;
1808*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg16), (MOV_SPECIAL ENVREG16)>;
1809*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg17), (MOV_SPECIAL ENVREG17)>;
1810*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg18), (MOV_SPECIAL ENVREG18)>;
1811*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg19), (MOV_SPECIAL ENVREG19)>;
1812*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg20), (MOV_SPECIAL ENVREG20)>;
1813*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg21), (MOV_SPECIAL ENVREG21)>;
1814*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg22), (MOV_SPECIAL ENVREG22)>;
1815*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg23), (MOV_SPECIAL ENVREG23)>;
1816*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg24), (MOV_SPECIAL ENVREG24)>;
1817*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg25), (MOV_SPECIAL ENVREG25)>;
1818*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg26), (MOV_SPECIAL ENVREG26)>;
1819*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg27), (MOV_SPECIAL ENVREG27)>;
1820*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg28), (MOV_SPECIAL ENVREG28)>;
1821*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg29), (MOV_SPECIAL ENVREG29)>;
1822*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg30), (MOV_SPECIAL ENVREG30)>;
1823*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_read_ptx_sreg_envreg31), (MOV_SPECIAL ENVREG31)>;
1824*9880d681SAndroid Build Coastguard Worker
1825*9880d681SAndroid Build Coastguard Worker
1826*9880d681SAndroid Build Coastguard Worker// rotate builtin support
1827*9880d681SAndroid Build Coastguard Worker
1828*9880d681SAndroid Build Coastguard Workerdef ROTATE_B32_HW_IMM
1829*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$dst),
1830*9880d681SAndroid Build Coastguard Worker              (ins  Int32Regs:$src, i32imm:$amt),
1831*9880d681SAndroid Build Coastguard Worker              "shf.l.wrap.b32 \t$dst, $src, $src, $amt;",
1832*9880d681SAndroid Build Coastguard Worker              [(set Int32Regs:$dst,
1833*9880d681SAndroid Build Coastguard Worker                 (int_nvvm_rotate_b32 Int32Regs:$src, (i32 imm:$amt)))]>,
1834*9880d681SAndroid Build Coastguard Worker              Requires<[hasHWROT32]> ;
1835*9880d681SAndroid Build Coastguard Worker
1836*9880d681SAndroid Build Coastguard Workerdef ROTATE_B32_HW_REG
1837*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$dst),
1838*9880d681SAndroid Build Coastguard Worker              (ins  Int32Regs:$src, Int32Regs:$amt),
1839*9880d681SAndroid Build Coastguard Worker              "shf.l.wrap.b32 \t$dst, $src, $src, $amt;",
1840*9880d681SAndroid Build Coastguard Worker              [(set Int32Regs:$dst,
1841*9880d681SAndroid Build Coastguard Worker                 (int_nvvm_rotate_b32 Int32Regs:$src, Int32Regs:$amt))]>,
1842*9880d681SAndroid Build Coastguard Worker              Requires<[hasHWROT32]> ;
1843*9880d681SAndroid Build Coastguard Worker
1844*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_b32 Int32Regs:$src, (i32 imm:$amt)),
1845*9880d681SAndroid Build Coastguard Worker          (ROT32imm_sw Int32Regs:$src, imm:$amt, (SUB_FRM_32 node:$amt))>,
1846*9880d681SAndroid Build Coastguard Worker      Requires<[noHWROT32]> ;
1847*9880d681SAndroid Build Coastguard Worker
1848*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_b32 Int32Regs:$src, Int32Regs:$amt),
1849*9880d681SAndroid Build Coastguard Worker          (ROTL32reg_sw Int32Regs:$src, Int32Regs:$amt)>,
1850*9880d681SAndroid Build Coastguard Worker      Requires<[noHWROT32]> ;
1851*9880d681SAndroid Build Coastguard Worker
1852*9880d681SAndroid Build Coastguard Workerlet hasSideEffects = 0 in {
1853*9880d681SAndroid Build Coastguard Worker  def GET_LO_INT64
1854*9880d681SAndroid Build Coastguard Worker    : NVPTXInst<(outs Int32Regs:$dst), (ins Int64Regs:$src),
1855*9880d681SAndroid Build Coastguard Worker                !strconcat("{{\n\t",
1856*9880d681SAndroid Build Coastguard Worker                !strconcat(".reg .b32 %dummy;\n\t",
1857*9880d681SAndroid Build Coastguard Worker                !strconcat("mov.b64 \t{$dst,%dummy}, $src;\n\t",
1858*9880d681SAndroid Build Coastguard Worker          !strconcat("}}", "")))),
1859*9880d681SAndroid Build Coastguard Worker          []> ;
1860*9880d681SAndroid Build Coastguard Worker
1861*9880d681SAndroid Build Coastguard Worker  def GET_HI_INT64
1862*9880d681SAndroid Build Coastguard Worker    : NVPTXInst<(outs Int32Regs:$dst), (ins Int64Regs:$src),
1863*9880d681SAndroid Build Coastguard Worker                !strconcat("{{\n\t",
1864*9880d681SAndroid Build Coastguard Worker                !strconcat(".reg .b32 %dummy;\n\t",
1865*9880d681SAndroid Build Coastguard Worker                !strconcat("mov.b64 \t{%dummy,$dst}, $src;\n\t",
1866*9880d681SAndroid Build Coastguard Worker          !strconcat("}}", "")))),
1867*9880d681SAndroid Build Coastguard Worker          []> ;
1868*9880d681SAndroid Build Coastguard Worker}
1869*9880d681SAndroid Build Coastguard Worker
1870*9880d681SAndroid Build Coastguard Workerlet hasSideEffects = 0 in {
1871*9880d681SAndroid Build Coastguard Worker  def PACK_TWO_INT32
1872*9880d681SAndroid Build Coastguard Worker    : NVPTXInst<(outs Int64Regs:$dst), (ins Int32Regs:$lo, Int32Regs:$hi),
1873*9880d681SAndroid Build Coastguard Worker                "mov.b64 \t$dst, {{$lo, $hi}};", []> ;
1874*9880d681SAndroid Build Coastguard Worker}
1875*9880d681SAndroid Build Coastguard Worker
1876*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_swap_lo_hi_b64 Int64Regs:$src),
1877*9880d681SAndroid Build Coastguard Worker          (PACK_TWO_INT32 (GET_HI_INT64 Int64Regs:$src),
1878*9880d681SAndroid Build Coastguard Worker                          (GET_LO_INT64 Int64Regs:$src))> ;
1879*9880d681SAndroid Build Coastguard Worker
1880*9880d681SAndroid Build Coastguard Worker// Funnel shift, requires >= sm_32.  Does not trap if amt is out of range, so
1881*9880d681SAndroid Build Coastguard Worker// no side effects.
1882*9880d681SAndroid Build Coastguard Workerlet hasSideEffects = 0 in {
1883*9880d681SAndroid Build Coastguard Worker  def SHF_L_WRAP_B32_IMM
1884*9880d681SAndroid Build Coastguard Worker    : NVPTXInst<(outs Int32Regs:$dst),
1885*9880d681SAndroid Build Coastguard Worker                (ins  Int32Regs:$lo, Int32Regs:$hi, i32imm:$amt),
1886*9880d681SAndroid Build Coastguard Worker                "shf.l.wrap.b32 \t$dst, $lo, $hi, $amt;",[]>,
1887*9880d681SAndroid Build Coastguard Worker      Requires<[hasHWROT32]>;
1888*9880d681SAndroid Build Coastguard Worker
1889*9880d681SAndroid Build Coastguard Worker  def SHF_L_WRAP_B32_REG
1890*9880d681SAndroid Build Coastguard Worker    : NVPTXInst<(outs Int32Regs:$dst),
1891*9880d681SAndroid Build Coastguard Worker                (ins  Int32Regs:$lo, Int32Regs:$hi, Int32Regs:$amt),
1892*9880d681SAndroid Build Coastguard Worker                "shf.l.wrap.b32 \t$dst, $lo, $hi, $amt;",[]>,
1893*9880d681SAndroid Build Coastguard Worker      Requires<[hasHWROT32]>;
1894*9880d681SAndroid Build Coastguard Worker
1895*9880d681SAndroid Build Coastguard Worker  def SHF_R_WRAP_B32_IMM
1896*9880d681SAndroid Build Coastguard Worker    : NVPTXInst<(outs Int32Regs:$dst),
1897*9880d681SAndroid Build Coastguard Worker                (ins  Int32Regs:$lo, Int32Regs:$hi, i32imm:$amt),
1898*9880d681SAndroid Build Coastguard Worker                "shf.r.wrap.b32 \t$dst, $lo, $hi, $amt;",[]>,
1899*9880d681SAndroid Build Coastguard Worker      Requires<[hasHWROT32]>;
1900*9880d681SAndroid Build Coastguard Worker
1901*9880d681SAndroid Build Coastguard Worker  def SHF_R_WRAP_B32_REG
1902*9880d681SAndroid Build Coastguard Worker    : NVPTXInst<(outs Int32Regs:$dst),
1903*9880d681SAndroid Build Coastguard Worker                (ins  Int32Regs:$lo, Int32Regs:$hi, Int32Regs:$amt),
1904*9880d681SAndroid Build Coastguard Worker                "shf.r.wrap.b32 \t$dst, $lo, $hi, $amt;",[]>,
1905*9880d681SAndroid Build Coastguard Worker      Requires<[hasHWROT32]>;
1906*9880d681SAndroid Build Coastguard Worker}
1907*9880d681SAndroid Build Coastguard Worker
1908*9880d681SAndroid Build Coastguard Worker// HW version of rotate 64
1909*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_b64 Int64Regs:$src, (i32 imm:$amt)),
1910*9880d681SAndroid Build Coastguard Worker          (PACK_TWO_INT32
1911*9880d681SAndroid Build Coastguard Worker            (SHF_L_WRAP_B32_IMM (GET_HI_INT64 Int64Regs:$src),
1912*9880d681SAndroid Build Coastguard Worker                                (GET_LO_INT64 Int64Regs:$src), imm:$amt),
1913*9880d681SAndroid Build Coastguard Worker            (SHF_L_WRAP_B32_IMM (GET_LO_INT64 Int64Regs:$src),
1914*9880d681SAndroid Build Coastguard Worker                                (GET_HI_INT64 Int64Regs:$src), imm:$amt))>,
1915*9880d681SAndroid Build Coastguard Worker      Requires<[hasHWROT32]>;
1916*9880d681SAndroid Build Coastguard Worker
1917*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_b64 Int64Regs:$src, Int32Regs:$amt),
1918*9880d681SAndroid Build Coastguard Worker          (PACK_TWO_INT32
1919*9880d681SAndroid Build Coastguard Worker            (SHF_L_WRAP_B32_REG (GET_HI_INT64 Int64Regs:$src),
1920*9880d681SAndroid Build Coastguard Worker                                (GET_LO_INT64 Int64Regs:$src), Int32Regs:$amt),
1921*9880d681SAndroid Build Coastguard Worker            (SHF_L_WRAP_B32_REG (GET_LO_INT64 Int64Regs:$src),
1922*9880d681SAndroid Build Coastguard Worker                               (GET_HI_INT64 Int64Regs:$src), Int32Regs:$amt))>,
1923*9880d681SAndroid Build Coastguard Worker      Requires<[hasHWROT32]>;
1924*9880d681SAndroid Build Coastguard Worker
1925*9880d681SAndroid Build Coastguard Worker
1926*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_right_b64 Int64Regs:$src, (i32 imm:$amt)),
1927*9880d681SAndroid Build Coastguard Worker          (PACK_TWO_INT32
1928*9880d681SAndroid Build Coastguard Worker            (SHF_R_WRAP_B32_IMM (GET_LO_INT64 Int64Regs:$src),
1929*9880d681SAndroid Build Coastguard Worker                                (GET_HI_INT64 Int64Regs:$src), imm:$amt),
1930*9880d681SAndroid Build Coastguard Worker            (SHF_R_WRAP_B32_IMM (GET_HI_INT64 Int64Regs:$src),
1931*9880d681SAndroid Build Coastguard Worker                                (GET_LO_INT64 Int64Regs:$src), imm:$amt))>,
1932*9880d681SAndroid Build Coastguard Worker      Requires<[hasHWROT32]>;
1933*9880d681SAndroid Build Coastguard Worker
1934*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_right_b64 Int64Regs:$src, Int32Regs:$amt),
1935*9880d681SAndroid Build Coastguard Worker          (PACK_TWO_INT32
1936*9880d681SAndroid Build Coastguard Worker            (SHF_R_WRAP_B32_REG (GET_LO_INT64 Int64Regs:$src),
1937*9880d681SAndroid Build Coastguard Worker                                (GET_HI_INT64 Int64Regs:$src), Int32Regs:$amt),
1938*9880d681SAndroid Build Coastguard Worker            (SHF_R_WRAP_B32_REG (GET_HI_INT64 Int64Regs:$src),
1939*9880d681SAndroid Build Coastguard Worker                               (GET_LO_INT64 Int64Regs:$src), Int32Regs:$amt))>,
1940*9880d681SAndroid Build Coastguard Worker      Requires<[hasHWROT32]>;
1941*9880d681SAndroid Build Coastguard Worker
1942*9880d681SAndroid Build Coastguard Worker// SW version of rotate 64
1943*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_b64 Int64Regs:$src, (i32 imm:$amt)),
1944*9880d681SAndroid Build Coastguard Worker          (ROT64imm_sw Int64Regs:$src, imm:$amt, (SUB_FRM_32 node:$amt))>,
1945*9880d681SAndroid Build Coastguard Worker      Requires<[noHWROT32]>;
1946*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_b64 Int64Regs:$src, Int32Regs:$amt),
1947*9880d681SAndroid Build Coastguard Worker          (ROTL64reg_sw Int64Regs:$src, Int32Regs:$amt)>,
1948*9880d681SAndroid Build Coastguard Worker      Requires<[noHWROT32]>;
1949*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_right_b64 Int64Regs:$src, (i32 imm:$amt)),
1950*9880d681SAndroid Build Coastguard Worker          (ROT64imm_sw Int64Regs:$src, (SUB_FRM_64 node:$amt), imm:$amt)>,
1951*9880d681SAndroid Build Coastguard Worker      Requires<[noHWROT32]>;
1952*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_rotate_right_b64 Int64Regs:$src, Int32Regs:$amt),
1953*9880d681SAndroid Build Coastguard Worker          (ROTR64reg_sw Int64Regs:$src, Int32Regs:$amt)>,
1954*9880d681SAndroid Build Coastguard Worker      Requires<[noHWROT32]>;
1955*9880d681SAndroid Build Coastguard Worker
1956*9880d681SAndroid Build Coastguard Worker
1957*9880d681SAndroid Build Coastguard Worker//-----------------------------------
1958*9880d681SAndroid Build Coastguard Worker// Texture Intrinsics
1959*9880d681SAndroid Build Coastguard Worker//-----------------------------------
1960*9880d681SAndroid Build Coastguard Worker
1961*9880d681SAndroid Build Coastguard Worker// NOTE: For Fermi support, any new texture/surface/sampler intrinsics must be
1962*9880d681SAndroid Build Coastguard Worker// also defined in NVPTXReplaceImageHandles.cpp
1963*9880d681SAndroid Build Coastguard Worker
1964*9880d681SAndroid Build Coastguard Worker// texmode_independent
1965*9880d681SAndroid Build Coastguard Workerlet IsTex = 1, IsTexModeUnified = 0 in {
1966*9880d681SAndroid Build Coastguard Worker// Texture fetch instructions using handles
1967*9880d681SAndroid Build Coastguard Workerdef TEX_1D_F32_S32
1968*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
1969*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
1970*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x),
1971*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, [$t, $s, \\{$x\\}];",
1972*9880d681SAndroid Build Coastguard Worker              []>;
1973*9880d681SAndroid Build Coastguard Workerdef TEX_1D_F32_F32
1974*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
1975*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
1976*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x),
1977*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, [$t, $s, \\{$x\\}];",
1978*9880d681SAndroid Build Coastguard Worker              []>;
1979*9880d681SAndroid Build Coastguard Workerdef TEX_1D_F32_F32_LEVEL
1980*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
1981*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
1982*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$lod),
1983*9880d681SAndroid Build Coastguard Worker              "tex.level.1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
1984*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x\\}], $lod;",
1985*9880d681SAndroid Build Coastguard Worker              []>;
1986*9880d681SAndroid Build Coastguard Workerdef TEX_1D_F32_F32_GRAD
1987*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
1988*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
1989*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x,
1990*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
1991*9880d681SAndroid Build Coastguard Worker              "tex.grad.1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
1992*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x\\}], \\{$gradx\\}, \\{$grady\\};",
1993*9880d681SAndroid Build Coastguard Worker              []>;
1994*9880d681SAndroid Build Coastguard Workerdef TEX_1D_S32_S32
1995*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
1996*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
1997*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x),
1998*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, [$t, $s, \\{$x\\}];",
1999*9880d681SAndroid Build Coastguard Worker              []>;
2000*9880d681SAndroid Build Coastguard Workerdef TEX_1D_S32_F32
2001*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2002*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2003*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x),
2004*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, [$t, $s, \\{$x\\}];",
2005*9880d681SAndroid Build Coastguard Worker              []>;
2006*9880d681SAndroid Build Coastguard Workerdef TEX_1D_S32_F32_LEVEL
2007*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2008*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2009*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x,
2010*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2011*9880d681SAndroid Build Coastguard Worker              "tex.level.1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2012*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x\\}], $lod;",
2013*9880d681SAndroid Build Coastguard Worker              []>;
2014*9880d681SAndroid Build Coastguard Workerdef TEX_1D_S32_F32_GRAD
2015*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2016*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2017*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x,
2018*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2019*9880d681SAndroid Build Coastguard Worker              "tex.grad.1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2020*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x\\}], \\{$gradx\\}, \\{$grady\\};",
2021*9880d681SAndroid Build Coastguard Worker              []>;
2022*9880d681SAndroid Build Coastguard Workerdef TEX_1D_U32_S32
2023*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2024*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2025*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x),
2026*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, [$t, $s, \\{$x\\}];",
2027*9880d681SAndroid Build Coastguard Worker              []>;
2028*9880d681SAndroid Build Coastguard Workerdef TEX_1D_U32_F32
2029*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2030*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2031*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x),
2032*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, [$t, $s, \\{$x\\}];",
2033*9880d681SAndroid Build Coastguard Worker              []>;
2034*9880d681SAndroid Build Coastguard Workerdef TEX_1D_U32_F32_LEVEL
2035*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2036*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2037*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x,
2038*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2039*9880d681SAndroid Build Coastguard Worker              "tex.level.1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2040*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x\\}], $lod;",
2041*9880d681SAndroid Build Coastguard Worker              []>;
2042*9880d681SAndroid Build Coastguard Workerdef TEX_1D_U32_F32_GRAD
2043*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2044*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2045*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x,
2046*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2047*9880d681SAndroid Build Coastguard Worker              "tex.grad.1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2048*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x\\}], \\{$gradx\\}, \\{$grady\\};",
2049*9880d681SAndroid Build Coastguard Worker              []>;
2050*9880d681SAndroid Build Coastguard Worker
2051*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_F32_S32
2052*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2053*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2054*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
2055*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, "
2056*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}];",
2057*9880d681SAndroid Build Coastguard Worker              []>;
2058*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_F32_F32
2059*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2060*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2061*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x),
2062*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2063*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}];",
2064*9880d681SAndroid Build Coastguard Worker              []>;
2065*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_F32_F32_LEVEL
2066*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2067*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2068*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2069*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2070*9880d681SAndroid Build Coastguard Worker              "tex.level.a1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2071*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}], $lod;",
2072*9880d681SAndroid Build Coastguard Worker              []>;
2073*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_F32_F32_GRAD
2074*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2075*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2076*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2077*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2078*9880d681SAndroid Build Coastguard Worker              "tex.grad.a1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2079*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}], \\{$gradx\\}, \\{$grady\\};",
2080*9880d681SAndroid Build Coastguard Worker              []>;
2081*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_S32_S32
2082*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2083*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2084*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
2085*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, "
2086*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}];",
2087*9880d681SAndroid Build Coastguard Worker              []>;
2088*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_S32_F32
2089*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2090*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2091*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x),
2092*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2093*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}];",
2094*9880d681SAndroid Build Coastguard Worker              []>;
2095*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_S32_F32_LEVEL
2096*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2097*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2098*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2099*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2100*9880d681SAndroid Build Coastguard Worker              "tex.level.a1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2101*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}], $lod;",
2102*9880d681SAndroid Build Coastguard Worker              []>;
2103*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_S32_F32_GRAD
2104*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2105*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2106*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2107*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2108*9880d681SAndroid Build Coastguard Worker              "tex.grad.a1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2109*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}], \\{$gradx\\}, \\{$grady\\};",
2110*9880d681SAndroid Build Coastguard Worker              []>;
2111*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_U32_S32
2112*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2113*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2114*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
2115*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, "
2116*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}];",
2117*9880d681SAndroid Build Coastguard Worker              []>;
2118*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_U32_F32
2119*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2120*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2121*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x),
2122*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2123*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}];",
2124*9880d681SAndroid Build Coastguard Worker              []>;
2125*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_U32_F32_LEVEL
2126*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2127*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2128*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2129*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2130*9880d681SAndroid Build Coastguard Worker              "tex.level.a1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2131*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}], $lod;",
2132*9880d681SAndroid Build Coastguard Worker              []>;
2133*9880d681SAndroid Build Coastguard Workerdef TEX_1D_ARRAY_U32_F32_GRAD
2134*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2135*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2136*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2137*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2138*9880d681SAndroid Build Coastguard Worker              "tex.grad.a1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2139*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x\\}], \\{$gradx\\}, \\{$grady\\};",
2140*9880d681SAndroid Build Coastguard Worker              []>;
2141*9880d681SAndroid Build Coastguard Worker
2142*9880d681SAndroid Build Coastguard Workerdef TEX_2D_F32_S32
2143*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2144*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2145*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
2146*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, "
2147*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2148*9880d681SAndroid Build Coastguard Worker              []>;
2149*9880d681SAndroid Build Coastguard Workerdef TEX_2D_F32_F32
2150*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2151*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2152*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2153*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2154*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2155*9880d681SAndroid Build Coastguard Worker              []>;
2156*9880d681SAndroid Build Coastguard Workerdef TEX_2D_F32_F32_LEVEL
2157*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2158*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2159*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2160*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2161*9880d681SAndroid Build Coastguard Worker              "tex.level.2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2162*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}], $lod;",
2163*9880d681SAndroid Build Coastguard Worker              []>;
2164*9880d681SAndroid Build Coastguard Workerdef TEX_2D_F32_F32_GRAD
2165*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2166*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2167*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2168*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2169*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2170*9880d681SAndroid Build Coastguard Worker              "tex.grad.2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2171*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}], \\{$gradx0, $gradx1\\}, "
2172*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2173*9880d681SAndroid Build Coastguard Worker              []>;
2174*9880d681SAndroid Build Coastguard Workerdef TEX_2D_S32_S32
2175*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2176*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2177*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
2178*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, "
2179*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2180*9880d681SAndroid Build Coastguard Worker              []>;
2181*9880d681SAndroid Build Coastguard Workerdef TEX_2D_S32_F32
2182*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2183*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2184*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2185*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2186*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2187*9880d681SAndroid Build Coastguard Worker              []>;
2188*9880d681SAndroid Build Coastguard Workerdef TEX_2D_S32_F32_LEVEL
2189*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2190*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2191*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2192*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2193*9880d681SAndroid Build Coastguard Worker              "tex.level.2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2194*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}], $lod;",
2195*9880d681SAndroid Build Coastguard Worker              []>;
2196*9880d681SAndroid Build Coastguard Workerdef TEX_2D_S32_F32_GRAD
2197*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2198*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2199*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2200*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2201*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2202*9880d681SAndroid Build Coastguard Worker              "tex.grad.2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2203*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}], \\{$gradx0, $gradx1\\}, "
2204*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2205*9880d681SAndroid Build Coastguard Worker              []>;
2206*9880d681SAndroid Build Coastguard Workerdef TEX_2D_U32_S32
2207*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2208*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2209*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
2210*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, "
2211*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2212*9880d681SAndroid Build Coastguard Worker              []>;
2213*9880d681SAndroid Build Coastguard Workerdef TEX_2D_U32_F32
2214*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2215*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2216*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2217*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2218*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2219*9880d681SAndroid Build Coastguard Worker              []>;
2220*9880d681SAndroid Build Coastguard Workerdef TEX_2D_U32_F32_LEVEL
2221*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2222*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2223*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2224*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2225*9880d681SAndroid Build Coastguard Worker              "tex.level.2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2226*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}], $lod;",
2227*9880d681SAndroid Build Coastguard Worker              []>;
2228*9880d681SAndroid Build Coastguard Workerdef TEX_2D_U32_F32_GRAD
2229*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2230*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2231*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2232*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2233*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2234*9880d681SAndroid Build Coastguard Worker              "tex.grad.2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2235*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}], \\{$gradx0, $gradx1\\}, "
2236*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2237*9880d681SAndroid Build Coastguard Worker              []>;
2238*9880d681SAndroid Build Coastguard Worker
2239*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_F32_S32
2240*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2241*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2242*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
2243*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$y),
2244*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, "
2245*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}];",
2246*9880d681SAndroid Build Coastguard Worker              []>;
2247*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_F32_F32
2248*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2249*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2250*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2251*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y),
2252*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2253*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}];",
2254*9880d681SAndroid Build Coastguard Worker              []>;
2255*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_F32_F32_LEVEL
2256*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2257*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2258*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2259*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y, Float32Regs:$lod),
2260*9880d681SAndroid Build Coastguard Worker              "tex.level.a2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2261*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}], $lod;",
2262*9880d681SAndroid Build Coastguard Worker              []>;
2263*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_F32_F32_GRAD
2264*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2265*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2266*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2267*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y, Float32Regs:$gradx0, Float32Regs:$gradx1,
2268*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2269*9880d681SAndroid Build Coastguard Worker              "tex.grad.a2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2270*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}], \\{$gradx0, $gradx1\\}, "
2271*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2272*9880d681SAndroid Build Coastguard Worker              []>;
2273*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_S32_S32
2274*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2275*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2276*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
2277*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$y),
2278*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, "
2279*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}];",
2280*9880d681SAndroid Build Coastguard Worker              []>;
2281*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_S32_F32
2282*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2283*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2284*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2285*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y),
2286*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2287*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}];",
2288*9880d681SAndroid Build Coastguard Worker              []>;
2289*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_S32_F32_LEVEL
2290*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2291*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2292*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2293*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y, Float32Regs:$lod),
2294*9880d681SAndroid Build Coastguard Worker              "tex.level.a2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2295*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}], $lod;",
2296*9880d681SAndroid Build Coastguard Worker              []>;
2297*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_S32_F32_GRAD
2298*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2299*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2300*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2301*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y,
2302*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2303*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2304*9880d681SAndroid Build Coastguard Worker              "tex.grad.a2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2305*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}], \\{$gradx0, $gradx1\\}, "
2306*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2307*9880d681SAndroid Build Coastguard Worker              []>;
2308*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_U32_S32
2309*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2310*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2311*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
2312*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$y),
2313*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, "
2314*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}];",
2315*9880d681SAndroid Build Coastguard Worker              []>;
2316*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_U32_F32
2317*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2318*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2319*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2320*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y),
2321*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2322*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}];",
2323*9880d681SAndroid Build Coastguard Worker              []>;
2324*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_U32_F32_LEVEL
2325*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2326*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2327*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2328*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y, Float32Regs:$lod),
2329*9880d681SAndroid Build Coastguard Worker              "tex.level.a2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2330*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}], $lod;",
2331*9880d681SAndroid Build Coastguard Worker              []>;
2332*9880d681SAndroid Build Coastguard Workerdef TEX_2D_ARRAY_U32_F32_GRAD
2333*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2334*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2335*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l, Float32Regs:$x,
2336*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y,
2337*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2338*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2339*9880d681SAndroid Build Coastguard Worker              "tex.grad.a2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2340*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $y\\}], \\{$gradx0, $gradx1\\}, "
2341*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2342*9880d681SAndroid Build Coastguard Worker              []>;
2343*9880d681SAndroid Build Coastguard Worker
2344*9880d681SAndroid Build Coastguard Workerdef TEX_3D_F32_S32
2345*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2346*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2347*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
2348*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$z),
2349*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, "
2350*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2351*9880d681SAndroid Build Coastguard Worker              []>;
2352*9880d681SAndroid Build Coastguard Workerdef TEX_3D_F32_F32
2353*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2354*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2355*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2356*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z),
2357*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2358*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2359*9880d681SAndroid Build Coastguard Worker              []>;
2360*9880d681SAndroid Build Coastguard Workerdef TEX_3D_F32_F32_LEVEL
2361*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2362*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2363*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2364*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z, Float32Regs:$lod),
2365*9880d681SAndroid Build Coastguard Worker              "tex.level.3d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2366*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], $lod;",
2367*9880d681SAndroid Build Coastguard Worker              []>;
2368*9880d681SAndroid Build Coastguard Workerdef TEX_3D_F32_F32_GRAD
2369*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2370*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2371*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2372*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z,
2373*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2374*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx2, Float32Regs:$grady0,
2375*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady1, Float32Regs:$grady2),
2376*9880d681SAndroid Build Coastguard Worker              "tex.grad.3d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2377*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], "
2378*9880d681SAndroid Build Coastguard Worker              "\\{$gradx0, $gradx1, $gradx2, $gradx2\\}, "
2379*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1, $grady2, $grady2\\};",
2380*9880d681SAndroid Build Coastguard Worker              []>;
2381*9880d681SAndroid Build Coastguard Workerdef TEX_3D_S32_S32
2382*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2383*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2384*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
2385*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$z),
2386*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, "
2387*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2388*9880d681SAndroid Build Coastguard Worker              []>;
2389*9880d681SAndroid Build Coastguard Workerdef TEX_3D_S32_F32
2390*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2391*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2392*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2393*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z),
2394*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2395*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2396*9880d681SAndroid Build Coastguard Worker              []>;
2397*9880d681SAndroid Build Coastguard Workerdef TEX_3D_S32_F32_LEVEL
2398*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2399*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2400*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2401*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z, Float32Regs:$lod),
2402*9880d681SAndroid Build Coastguard Worker              "tex.level.3d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2403*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], $lod;",
2404*9880d681SAndroid Build Coastguard Worker              []>;
2405*9880d681SAndroid Build Coastguard Workerdef TEX_3D_S32_F32_GRAD
2406*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2407*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2408*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2409*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z,
2410*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2411*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx2, Float32Regs:$grady0,
2412*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady1, Float32Regs:$grady2),
2413*9880d681SAndroid Build Coastguard Worker              "tex.grad.3d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2414*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], "
2415*9880d681SAndroid Build Coastguard Worker              "\\{$gradx0, $gradx1, $gradx2, $gradx2\\}, "
2416*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1, $grady2, $grady2\\};",
2417*9880d681SAndroid Build Coastguard Worker              []>;
2418*9880d681SAndroid Build Coastguard Workerdef TEX_3D_U32_S32
2419*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2420*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2421*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
2422*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$z),
2423*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, "
2424*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2425*9880d681SAndroid Build Coastguard Worker              []>;
2426*9880d681SAndroid Build Coastguard Workerdef TEX_3D_U32_F32
2427*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2428*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2429*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2430*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z),
2431*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2432*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2433*9880d681SAndroid Build Coastguard Worker              []>;
2434*9880d681SAndroid Build Coastguard Workerdef TEX_3D_U32_F32_LEVEL
2435*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2436*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2437*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2438*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z, Float32Regs:$lod),
2439*9880d681SAndroid Build Coastguard Worker              "tex.level.3d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2440*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], $lod;",
2441*9880d681SAndroid Build Coastguard Worker              []>;
2442*9880d681SAndroid Build Coastguard Workerdef TEX_3D_U32_F32_GRAD
2443*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2444*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2445*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y,
2446*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z,
2447*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2448*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx2, Float32Regs:$grady0,
2449*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady1, Float32Regs:$grady2),
2450*9880d681SAndroid Build Coastguard Worker              "tex.grad.3d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2451*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], "
2452*9880d681SAndroid Build Coastguard Worker              "\\{$gradx0, $gradx1, $gradx2, $gradx2\\}, "
2453*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1, $grady2, $grady2\\};",
2454*9880d681SAndroid Build Coastguard Worker              []>;
2455*9880d681SAndroid Build Coastguard Worker
2456*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_F32_F32
2457*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2458*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2459*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s,
2460*9880d681SAndroid Build Coastguard Worker               Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
2461*9880d681SAndroid Build Coastguard Worker              "tex.cube.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2462*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2463*9880d681SAndroid Build Coastguard Worker              []>;
2464*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_F32_F32_LEVEL
2465*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2466*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2467*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s,
2468*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
2469*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2470*9880d681SAndroid Build Coastguard Worker              "tex.level.cube.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2471*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], $lod;",
2472*9880d681SAndroid Build Coastguard Worker              []>;
2473*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_S32_F32
2474*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2475*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2476*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s,
2477*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
2478*9880d681SAndroid Build Coastguard Worker              "tex.cube.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2479*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2480*9880d681SAndroid Build Coastguard Worker              []>;
2481*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_S32_F32_LEVEL
2482*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2483*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2484*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s,
2485*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
2486*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2487*9880d681SAndroid Build Coastguard Worker              "tex.level.cube.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2488*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], $lod;",
2489*9880d681SAndroid Build Coastguard Worker              []>;
2490*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_U32_F32
2491*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2492*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2493*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s,
2494*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
2495*9880d681SAndroid Build Coastguard Worker              "tex.cube.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2496*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}];",
2497*9880d681SAndroid Build Coastguard Worker              []>;
2498*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_U32_F32_LEVEL
2499*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2500*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2501*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s,
2502*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
2503*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2504*9880d681SAndroid Build Coastguard Worker              "tex.level.cube.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2505*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y, $z, $z\\}], $lod;",
2506*9880d681SAndroid Build Coastguard Worker              []>;
2507*9880d681SAndroid Build Coastguard Worker
2508*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_ARRAY_F32_F32
2509*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2510*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2511*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l,
2512*9880d681SAndroid Build Coastguard Worker               Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
2513*9880d681SAndroid Build Coastguard Worker              "tex.acube.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2514*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $z\\}];",
2515*9880d681SAndroid Build Coastguard Worker              []>;
2516*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_ARRAY_F32_F32_LEVEL
2517*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2518*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2519*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l,
2520*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
2521*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2522*9880d681SAndroid Build Coastguard Worker              "tex.level.acube.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2523*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $z\\}], $lod;",
2524*9880d681SAndroid Build Coastguard Worker              []>;
2525*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_ARRAY_S32_F32
2526*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2527*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2528*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l,
2529*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
2530*9880d681SAndroid Build Coastguard Worker              "tex.acube.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2531*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $z\\}];",
2532*9880d681SAndroid Build Coastguard Worker              []>;
2533*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_ARRAY_S32_F32_LEVEL
2534*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2535*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2536*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l,
2537*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
2538*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2539*9880d681SAndroid Build Coastguard Worker              "tex.level.acube.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2540*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $z\\}], $lod;",
2541*9880d681SAndroid Build Coastguard Worker              []>;
2542*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_ARRAY_U32_F32
2543*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2544*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2545*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l,
2546*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
2547*9880d681SAndroid Build Coastguard Worker              "tex.acube.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2548*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $z\\}];",
2549*9880d681SAndroid Build Coastguard Worker              []>;
2550*9880d681SAndroid Build Coastguard Workerdef TEX_CUBE_ARRAY_U32_F32_LEVEL
2551*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2552*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2553*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Int32Regs:$l,
2554*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
2555*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2556*9880d681SAndroid Build Coastguard Worker              "tex.level.acube.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2557*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$l, $x, $y, $z\\}], $lod;",
2558*9880d681SAndroid Build Coastguard Worker              []>;
2559*9880d681SAndroid Build Coastguard Worker
2560*9880d681SAndroid Build Coastguard Workerdef TLD4_R_2D_F32_F32
2561*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$v0, Float32Regs:$v1,
2562*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$v2, Float32Regs:$v3),
2563*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2564*9880d681SAndroid Build Coastguard Worker              "tld4.r.2d.v4.f32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2565*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2566*9880d681SAndroid Build Coastguard Worker              []>;
2567*9880d681SAndroid Build Coastguard Workerdef TLD4_G_2D_F32_F32
2568*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$v0, Float32Regs:$v1,
2569*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$v2, Float32Regs:$v3),
2570*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2571*9880d681SAndroid Build Coastguard Worker              "tld4.g.2d.v4.f32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2572*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2573*9880d681SAndroid Build Coastguard Worker              []>;
2574*9880d681SAndroid Build Coastguard Workerdef TLD4_B_2D_F32_F32
2575*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$v0, Float32Regs:$v1,
2576*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$v2, Float32Regs:$v3),
2577*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2578*9880d681SAndroid Build Coastguard Worker              "tld4.b.2d.v4.f32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2579*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2580*9880d681SAndroid Build Coastguard Worker              []>;
2581*9880d681SAndroid Build Coastguard Workerdef TLD4_A_2D_F32_F32
2582*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$v0, Float32Regs:$v1,
2583*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$v2, Float32Regs:$v3),
2584*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2585*9880d681SAndroid Build Coastguard Worker              "tld4.a.2d.v4.f32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2586*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2587*9880d681SAndroid Build Coastguard Worker              []>;
2588*9880d681SAndroid Build Coastguard Workerdef TLD4_R_2D_S32_F32
2589*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
2590*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
2591*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2592*9880d681SAndroid Build Coastguard Worker              "tld4.r.2d.v4.s32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2593*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2594*9880d681SAndroid Build Coastguard Worker              []>;
2595*9880d681SAndroid Build Coastguard Workerdef TLD4_G_2D_S32_F32
2596*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
2597*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
2598*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2599*9880d681SAndroid Build Coastguard Worker              "tld4.g.2d.v4.s32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2600*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2601*9880d681SAndroid Build Coastguard Worker              []>;
2602*9880d681SAndroid Build Coastguard Workerdef TLD4_B_2D_S32_F32
2603*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
2604*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
2605*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2606*9880d681SAndroid Build Coastguard Worker              "tld4.b.2d.v4.s32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2607*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2608*9880d681SAndroid Build Coastguard Worker              []>;
2609*9880d681SAndroid Build Coastguard Workerdef TLD4_A_2D_S32_F32
2610*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
2611*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
2612*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2613*9880d681SAndroid Build Coastguard Worker              "tld4.a.2d.v4.s32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2614*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2615*9880d681SAndroid Build Coastguard Worker              []>;
2616*9880d681SAndroid Build Coastguard Workerdef TLD4_R_2D_U32_F32
2617*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
2618*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
2619*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2620*9880d681SAndroid Build Coastguard Worker              "tld4.r.2d.v4.u32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2621*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2622*9880d681SAndroid Build Coastguard Worker              []>;
2623*9880d681SAndroid Build Coastguard Workerdef TLD4_G_2D_U32_F32
2624*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
2625*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
2626*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2627*9880d681SAndroid Build Coastguard Worker              "tld4.g.2d.v4.u32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2628*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2629*9880d681SAndroid Build Coastguard Worker              []>;
2630*9880d681SAndroid Build Coastguard Workerdef TLD4_B_2D_U32_F32
2631*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
2632*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
2633*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2634*9880d681SAndroid Build Coastguard Worker              "tld4.b.2d.v4.u32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2635*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2636*9880d681SAndroid Build Coastguard Worker              []>;
2637*9880d681SAndroid Build Coastguard Workerdef TLD4_A_2D_U32_F32
2638*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
2639*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
2640*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int64Regs:$s, Float32Regs:$x, Float32Regs:$y),
2641*9880d681SAndroid Build Coastguard Worker              "tld4.a.2d.v4.u32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
2642*9880d681SAndroid Build Coastguard Worker              "[$t, $s, \\{$x, $y\\}];",
2643*9880d681SAndroid Build Coastguard Worker              []>;
2644*9880d681SAndroid Build Coastguard Worker}
2645*9880d681SAndroid Build Coastguard Worker
2646*9880d681SAndroid Build Coastguard Worker
2647*9880d681SAndroid Build Coastguard Worker// texmode_unified
2648*9880d681SAndroid Build Coastguard Workerlet IsTex = 1, IsTexModeUnified = 1 in {
2649*9880d681SAndroid Build Coastguard Worker// Texture fetch instructions using handles
2650*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_F32_S32
2651*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2652*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2653*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x),
2654*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, [$t, \\{$x\\}];",
2655*9880d681SAndroid Build Coastguard Worker              []>;
2656*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_F32_F32
2657*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2658*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2659*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x),
2660*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, [$t, \\{$x\\}];",
2661*9880d681SAndroid Build Coastguard Worker              []>;
2662*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_F32_F32_LEVEL
2663*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2664*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2665*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$lod),
2666*9880d681SAndroid Build Coastguard Worker              "tex.level.1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2667*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x\\}], $lod;",
2668*9880d681SAndroid Build Coastguard Worker              []>;
2669*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_F32_F32_GRAD
2670*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2671*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2672*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x,
2673*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2674*9880d681SAndroid Build Coastguard Worker              "tex.grad.1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2675*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x\\}], \\{$gradx\\}, \\{$grady\\};",
2676*9880d681SAndroid Build Coastguard Worker              []>;
2677*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_S32_S32
2678*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2679*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2680*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x),
2681*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, [$t, \\{$x\\}];",
2682*9880d681SAndroid Build Coastguard Worker              []>;
2683*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_S32_F32
2684*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2685*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2686*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x),
2687*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, [$t, \\{$x\\}];",
2688*9880d681SAndroid Build Coastguard Worker              []>;
2689*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_S32_F32_LEVEL
2690*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2691*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2692*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x,
2693*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2694*9880d681SAndroid Build Coastguard Worker              "tex.level.1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2695*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x\\}], $lod;",
2696*9880d681SAndroid Build Coastguard Worker              []>;
2697*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_S32_F32_GRAD
2698*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2699*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2700*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x,
2701*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2702*9880d681SAndroid Build Coastguard Worker              "tex.grad.1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2703*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x\\}], \\{$gradx\\}, \\{$grady\\};",
2704*9880d681SAndroid Build Coastguard Worker              []>;
2705*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_U32_S32
2706*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2707*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2708*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x),
2709*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, [$t, \\{$x\\}];",
2710*9880d681SAndroid Build Coastguard Worker              []>;
2711*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_U32_F32
2712*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2713*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2714*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x),
2715*9880d681SAndroid Build Coastguard Worker              "tex.1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, [$t, \\{$x\\}];",
2716*9880d681SAndroid Build Coastguard Worker              []>;
2717*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_U32_F32_LEVEL
2718*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2719*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2720*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x,
2721*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2722*9880d681SAndroid Build Coastguard Worker              "tex.level.1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2723*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x\\}], $lod;",
2724*9880d681SAndroid Build Coastguard Worker              []>;
2725*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_U32_F32_GRAD
2726*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2727*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2728*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x,
2729*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2730*9880d681SAndroid Build Coastguard Worker              "tex.grad.1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2731*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x\\}], \\{$gradx\\}, \\{$grady\\};",
2732*9880d681SAndroid Build Coastguard Worker              []>;
2733*9880d681SAndroid Build Coastguard Worker
2734*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_F32_S32
2735*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2736*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2737*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Int32Regs:$x),
2738*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, "
2739*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}];",
2740*9880d681SAndroid Build Coastguard Worker              []>;
2741*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_F32_F32
2742*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2743*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2744*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x),
2745*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2746*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}];",
2747*9880d681SAndroid Build Coastguard Worker              []>;
2748*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_F32_F32_LEVEL
2749*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2750*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2751*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2752*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2753*9880d681SAndroid Build Coastguard Worker              "tex.level.a1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2754*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}], $lod;",
2755*9880d681SAndroid Build Coastguard Worker              []>;
2756*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_F32_F32_GRAD
2757*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2758*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2759*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2760*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2761*9880d681SAndroid Build Coastguard Worker              "tex.grad.a1d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2762*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}], \\{$gradx\\}, \\{$grady\\};",
2763*9880d681SAndroid Build Coastguard Worker              []>;
2764*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_S32_S32
2765*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2766*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2767*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Int32Regs:$x),
2768*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, "
2769*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}];",
2770*9880d681SAndroid Build Coastguard Worker              []>;
2771*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_S32_F32
2772*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2773*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2774*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x),
2775*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2776*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}];",
2777*9880d681SAndroid Build Coastguard Worker              []>;
2778*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_S32_F32_LEVEL
2779*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2780*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2781*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2782*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2783*9880d681SAndroid Build Coastguard Worker              "tex.level.a1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2784*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}], $lod;",
2785*9880d681SAndroid Build Coastguard Worker              []>;
2786*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_S32_F32_GRAD
2787*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2788*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2789*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2790*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2791*9880d681SAndroid Build Coastguard Worker              "tex.grad.a1d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2792*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}], \\{$gradx\\}, \\{$grady\\};",
2793*9880d681SAndroid Build Coastguard Worker              []>;
2794*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_U32_S32
2795*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2796*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2797*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Int32Regs:$x),
2798*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, "
2799*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}];",
2800*9880d681SAndroid Build Coastguard Worker              []>;
2801*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_U32_F32
2802*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2803*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2804*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x),
2805*9880d681SAndroid Build Coastguard Worker              "tex.a1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2806*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}];",
2807*9880d681SAndroid Build Coastguard Worker              []>;
2808*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_U32_F32_LEVEL
2809*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2810*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2811*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2812*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2813*9880d681SAndroid Build Coastguard Worker              "tex.level.a1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2814*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}], $lod;",
2815*9880d681SAndroid Build Coastguard Worker              []>;
2816*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_1D_ARRAY_U32_F32_GRAD
2817*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2818*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2819*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2820*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx, Float32Regs:$grady),
2821*9880d681SAndroid Build Coastguard Worker              "tex.grad.a1d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2822*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x\\}], \\{$gradx\\}, \\{$grady\\};",
2823*9880d681SAndroid Build Coastguard Worker              []>;
2824*9880d681SAndroid Build Coastguard Worker
2825*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_F32_S32
2826*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2827*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2828*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x, Int32Regs:$y),
2829*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, "
2830*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
2831*9880d681SAndroid Build Coastguard Worker              []>;
2832*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_F32_F32
2833*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2834*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2835*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
2836*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2837*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
2838*9880d681SAndroid Build Coastguard Worker              []>;
2839*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_F32_F32_LEVEL
2840*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2841*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2842*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
2843*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2844*9880d681SAndroid Build Coastguard Worker              "tex.level.2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2845*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}], $lod;",
2846*9880d681SAndroid Build Coastguard Worker              []>;
2847*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_F32_F32_GRAD
2848*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2849*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2850*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
2851*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2852*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2853*9880d681SAndroid Build Coastguard Worker              "tex.grad.2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2854*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}], \\{$gradx0, $gradx1\\}, "
2855*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2856*9880d681SAndroid Build Coastguard Worker              []>;
2857*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_S32_S32
2858*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2859*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2860*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x, Int32Regs:$y),
2861*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, "
2862*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
2863*9880d681SAndroid Build Coastguard Worker              []>;
2864*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_S32_F32
2865*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2866*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2867*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
2868*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2869*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
2870*9880d681SAndroid Build Coastguard Worker              []>;
2871*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_S32_F32_LEVEL
2872*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2873*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2874*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
2875*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2876*9880d681SAndroid Build Coastguard Worker              "tex.level.2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2877*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}], $lod;",
2878*9880d681SAndroid Build Coastguard Worker              []>;
2879*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_S32_F32_GRAD
2880*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2881*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2882*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
2883*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2884*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2885*9880d681SAndroid Build Coastguard Worker              "tex.grad.2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2886*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}], \\{$gradx0, $gradx1\\}, "
2887*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2888*9880d681SAndroid Build Coastguard Worker              []>;
2889*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_U32_S32
2890*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2891*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2892*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x, Int32Regs:$y),
2893*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, "
2894*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
2895*9880d681SAndroid Build Coastguard Worker              []>;
2896*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_U32_F32
2897*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2898*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2899*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
2900*9880d681SAndroid Build Coastguard Worker              "tex.2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2901*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
2902*9880d681SAndroid Build Coastguard Worker              []>;
2903*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_U32_F32_LEVEL
2904*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2905*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2906*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
2907*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
2908*9880d681SAndroid Build Coastguard Worker              "tex.level.2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2909*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}], $lod;",
2910*9880d681SAndroid Build Coastguard Worker              []>;
2911*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_U32_F32_GRAD
2912*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2913*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2914*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
2915*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2916*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2917*9880d681SAndroid Build Coastguard Worker              "tex.grad.2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
2918*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}], \\{$gradx0, $gradx1\\}, "
2919*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2920*9880d681SAndroid Build Coastguard Worker              []>;
2921*9880d681SAndroid Build Coastguard Worker
2922*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_F32_S32
2923*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2924*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2925*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Int32Regs:$x,
2926*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$y),
2927*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, "
2928*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}];",
2929*9880d681SAndroid Build Coastguard Worker              []>;
2930*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_F32_F32
2931*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2932*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2933*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2934*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y),
2935*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2936*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}];",
2937*9880d681SAndroid Build Coastguard Worker              []>;
2938*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_F32_F32_LEVEL
2939*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2940*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2941*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2942*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y, Float32Regs:$lod),
2943*9880d681SAndroid Build Coastguard Worker              "tex.level.a2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2944*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}], $lod;",
2945*9880d681SAndroid Build Coastguard Worker              []>;
2946*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_F32_F32_GRAD
2947*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
2948*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
2949*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2950*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y, Float32Regs:$gradx0, Float32Regs:$gradx1,
2951*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2952*9880d681SAndroid Build Coastguard Worker              "tex.grad.a2d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
2953*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}], \\{$gradx0, $gradx1\\}, "
2954*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2955*9880d681SAndroid Build Coastguard Worker              []>;
2956*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_S32_S32
2957*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2958*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2959*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Int32Regs:$x,
2960*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$y),
2961*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, "
2962*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}];",
2963*9880d681SAndroid Build Coastguard Worker              []>;
2964*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_S32_F32
2965*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2966*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2967*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2968*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y),
2969*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2970*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}];",
2971*9880d681SAndroid Build Coastguard Worker              []>;
2972*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_S32_F32_LEVEL
2973*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2974*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2975*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2976*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y, Float32Regs:$lod),
2977*9880d681SAndroid Build Coastguard Worker              "tex.level.a2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2978*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}], $lod;",
2979*9880d681SAndroid Build Coastguard Worker              []>;
2980*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_S32_F32_GRAD
2981*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2982*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2983*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
2984*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y,
2985*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
2986*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
2987*9880d681SAndroid Build Coastguard Worker              "tex.grad.a2d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
2988*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}], \\{$gradx0, $gradx1\\}, "
2989*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
2990*9880d681SAndroid Build Coastguard Worker              []>;
2991*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_U32_S32
2992*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
2993*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
2994*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Int32Regs:$x,
2995*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$y),
2996*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, "
2997*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}];",
2998*9880d681SAndroid Build Coastguard Worker              []>;
2999*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_U32_F32
3000*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3001*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3002*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
3003*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y),
3004*9880d681SAndroid Build Coastguard Worker              "tex.a2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3005*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}];",
3006*9880d681SAndroid Build Coastguard Worker              []>;
3007*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_U32_F32_LEVEL
3008*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3009*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3010*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
3011*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y, Float32Regs:$lod),
3012*9880d681SAndroid Build Coastguard Worker              "tex.level.a2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3013*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}], $lod;",
3014*9880d681SAndroid Build Coastguard Worker              []>;
3015*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_2D_ARRAY_U32_F32_GRAD
3016*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3017*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3018*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l, Float32Regs:$x,
3019*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$y,
3020*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
3021*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady0, Float32Regs:$grady1),
3022*9880d681SAndroid Build Coastguard Worker              "tex.grad.a2d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3023*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $y\\}], \\{$gradx0, $gradx1\\}, "
3024*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1\\};",
3025*9880d681SAndroid Build Coastguard Worker              []>;
3026*9880d681SAndroid Build Coastguard Worker
3027*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_F32_S32
3028*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
3029*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
3030*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x, Int32Regs:$y,
3031*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$z),
3032*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.f32.s32\t\\{$r, $g, $b, $a\\}, "
3033*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3034*9880d681SAndroid Build Coastguard Worker              []>;
3035*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_F32_F32
3036*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
3037*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
3038*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3039*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z),
3040*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
3041*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3042*9880d681SAndroid Build Coastguard Worker              []>;
3043*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_F32_F32_LEVEL
3044*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
3045*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
3046*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3047*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z, Float32Regs:$lod),
3048*9880d681SAndroid Build Coastguard Worker              "tex.level.3d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
3049*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], $lod;",
3050*9880d681SAndroid Build Coastguard Worker              []>;
3051*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_F32_F32_GRAD
3052*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
3053*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
3054*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3055*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z,
3056*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
3057*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx2, Float32Regs:$grady0,
3058*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady1, Float32Regs:$grady2),
3059*9880d681SAndroid Build Coastguard Worker              "tex.grad.3d.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
3060*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], "
3061*9880d681SAndroid Build Coastguard Worker              "\\{$gradx0, $gradx1, $gradx2, $gradx2\\}, "
3062*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1, $grady2, $grady2\\};",
3063*9880d681SAndroid Build Coastguard Worker              []>;
3064*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_S32_S32
3065*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3066*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3067*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x, Int32Regs:$y,
3068*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$z),
3069*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.s32.s32\t\\{$r, $g, $b, $a\\}, "
3070*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3071*9880d681SAndroid Build Coastguard Worker              []>;
3072*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_S32_F32
3073*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3074*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3075*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3076*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z),
3077*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
3078*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3079*9880d681SAndroid Build Coastguard Worker              []>;
3080*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_S32_F32_LEVEL
3081*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3082*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3083*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3084*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z, Float32Regs:$lod),
3085*9880d681SAndroid Build Coastguard Worker              "tex.level.3d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
3086*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], $lod;",
3087*9880d681SAndroid Build Coastguard Worker              []>;
3088*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_S32_F32_GRAD
3089*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3090*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3091*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3092*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z,
3093*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
3094*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx2, Float32Regs:$grady0,
3095*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady1, Float32Regs:$grady2),
3096*9880d681SAndroid Build Coastguard Worker              "tex.grad.3d.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
3097*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], "
3098*9880d681SAndroid Build Coastguard Worker              "\\{$gradx0, $gradx1, $gradx2, $gradx2\\}, "
3099*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1, $grady2, $grady2\\};",
3100*9880d681SAndroid Build Coastguard Worker              []>;
3101*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_U32_S32
3102*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3103*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3104*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$x, Int32Regs:$y,
3105*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$z),
3106*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.u32.s32\t\\{$r, $g, $b, $a\\}, "
3107*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3108*9880d681SAndroid Build Coastguard Worker              []>;
3109*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_U32_F32
3110*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3111*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3112*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3113*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z),
3114*9880d681SAndroid Build Coastguard Worker              "tex.3d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3115*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3116*9880d681SAndroid Build Coastguard Worker              []>;
3117*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_U32_F32_LEVEL
3118*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3119*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3120*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3121*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z, Float32Regs:$lod),
3122*9880d681SAndroid Build Coastguard Worker              "tex.level.3d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3123*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], $lod;",
3124*9880d681SAndroid Build Coastguard Worker              []>;
3125*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_3D_U32_F32_GRAD
3126*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3127*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3128*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y,
3129*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$z,
3130*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx0, Float32Regs:$gradx1,
3131*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$gradx2, Float32Regs:$grady0,
3132*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$grady1, Float32Regs:$grady2),
3133*9880d681SAndroid Build Coastguard Worker              "tex.grad.3d.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3134*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], "
3135*9880d681SAndroid Build Coastguard Worker              "\\{$gradx0, $gradx1, $gradx2, $gradx2\\}, "
3136*9880d681SAndroid Build Coastguard Worker              "\\{$grady0, $grady1, $grady2, $grady2\\};",
3137*9880d681SAndroid Build Coastguard Worker              []>;
3138*9880d681SAndroid Build Coastguard Worker
3139*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_F32_F32
3140*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
3141*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
3142*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t,
3143*9880d681SAndroid Build Coastguard Worker               Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
3144*9880d681SAndroid Build Coastguard Worker              "tex.cube.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
3145*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3146*9880d681SAndroid Build Coastguard Worker              []>;
3147*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_F32_F32_LEVEL
3148*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
3149*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
3150*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t,
3151*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
3152*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
3153*9880d681SAndroid Build Coastguard Worker              "tex.level.cube.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
3154*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], $lod;",
3155*9880d681SAndroid Build Coastguard Worker              []>;
3156*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_S32_F32
3157*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3158*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3159*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t,
3160*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
3161*9880d681SAndroid Build Coastguard Worker              "tex.cube.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
3162*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3163*9880d681SAndroid Build Coastguard Worker              []>;
3164*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_S32_F32_LEVEL
3165*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3166*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3167*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t,
3168*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
3169*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
3170*9880d681SAndroid Build Coastguard Worker              "tex.level.cube.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
3171*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], $lod;",
3172*9880d681SAndroid Build Coastguard Worker              []>;
3173*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_U32_F32
3174*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3175*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3176*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t,
3177*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
3178*9880d681SAndroid Build Coastguard Worker              "tex.cube.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3179*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}];",
3180*9880d681SAndroid Build Coastguard Worker              []>;
3181*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_U32_F32_LEVEL
3182*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3183*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3184*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t,
3185*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
3186*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
3187*9880d681SAndroid Build Coastguard Worker              "tex.level.cube.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3188*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y, $z, $z\\}], $lod;",
3189*9880d681SAndroid Build Coastguard Worker              []>;
3190*9880d681SAndroid Build Coastguard Worker
3191*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_ARRAY_F32_F32
3192*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
3193*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
3194*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l,
3195*9880d681SAndroid Build Coastguard Worker               Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
3196*9880d681SAndroid Build Coastguard Worker              "tex.acube.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
3197*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $z\\}];",
3198*9880d681SAndroid Build Coastguard Worker              []>;
3199*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_ARRAY_F32_F32_LEVEL
3200*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$r, Float32Regs:$g,
3201*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$b, Float32Regs:$a),
3202*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l,
3203*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
3204*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
3205*9880d681SAndroid Build Coastguard Worker              "tex.level.acube.v4.f32.f32\t\\{$r, $g, $b, $a\\}, "
3206*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $z\\}], $lod;",
3207*9880d681SAndroid Build Coastguard Worker              []>;
3208*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_ARRAY_S32_F32
3209*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3210*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3211*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l,
3212*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
3213*9880d681SAndroid Build Coastguard Worker              "tex.acube.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
3214*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $z\\}];",
3215*9880d681SAndroid Build Coastguard Worker              []>;
3216*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_ARRAY_S32_F32_LEVEL
3217*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3218*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3219*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l,
3220*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
3221*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
3222*9880d681SAndroid Build Coastguard Worker              "tex.level.acube.v4.s32.f32\t\\{$r, $g, $b, $a\\}, "
3223*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $z\\}], $lod;",
3224*9880d681SAndroid Build Coastguard Worker              []>;
3225*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_ARRAY_U32_F32
3226*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3227*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3228*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l,
3229*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z),
3230*9880d681SAndroid Build Coastguard Worker              "tex.acube.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3231*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $z\\}];",
3232*9880d681SAndroid Build Coastguard Worker              []>;
3233*9880d681SAndroid Build Coastguard Workerdef TEX_UNIFIED_CUBE_ARRAY_U32_F32_LEVEL
3234*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g,
3235*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$b, Int32Regs:$a),
3236*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Int32Regs:$l,
3237*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$x, Float32Regs:$y, Float32Regs:$z,
3238*9880d681SAndroid Build Coastguard Worker                   Float32Regs:$lod),
3239*9880d681SAndroid Build Coastguard Worker              "tex.level.acube.v4.u32.f32\t\\{$r, $g, $b, $a\\}, "
3240*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$l, $x, $y, $z\\}], $lod;",
3241*9880d681SAndroid Build Coastguard Worker              []>;
3242*9880d681SAndroid Build Coastguard Worker
3243*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_R_2D_F32_F32
3244*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$v0, Float32Regs:$v1,
3245*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$v2, Float32Regs:$v3),
3246*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3247*9880d681SAndroid Build Coastguard Worker              "tld4.r.2d.v4.f32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3248*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3249*9880d681SAndroid Build Coastguard Worker              []>;
3250*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_G_2D_F32_F32
3251*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$v0, Float32Regs:$v1,
3252*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$v2, Float32Regs:$v3),
3253*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3254*9880d681SAndroid Build Coastguard Worker              "tld4.g.2d.v4.f32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3255*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3256*9880d681SAndroid Build Coastguard Worker              []>;
3257*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_B_2D_F32_F32
3258*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$v0, Float32Regs:$v1,
3259*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$v2, Float32Regs:$v3),
3260*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3261*9880d681SAndroid Build Coastguard Worker              "tld4.b.2d.v4.f32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3262*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3263*9880d681SAndroid Build Coastguard Worker              []>;
3264*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_A_2D_F32_F32
3265*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Float32Regs:$v0, Float32Regs:$v1,
3266*9880d681SAndroid Build Coastguard Worker                    Float32Regs:$v2, Float32Regs:$v3),
3267*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3268*9880d681SAndroid Build Coastguard Worker              "tld4.a.2d.v4.f32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3269*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3270*9880d681SAndroid Build Coastguard Worker              []>;
3271*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_R_2D_S32_F32
3272*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
3273*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
3274*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3275*9880d681SAndroid Build Coastguard Worker              "tld4.r.2d.v4.s32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3276*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3277*9880d681SAndroid Build Coastguard Worker              []>;
3278*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_G_2D_S32_F32
3279*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
3280*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
3281*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3282*9880d681SAndroid Build Coastguard Worker              "tld4.g.2d.v4.s32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3283*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3284*9880d681SAndroid Build Coastguard Worker              []>;
3285*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_B_2D_S32_F32
3286*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
3287*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
3288*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3289*9880d681SAndroid Build Coastguard Worker              "tld4.b.2d.v4.s32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3290*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3291*9880d681SAndroid Build Coastguard Worker              []>;
3292*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_A_2D_S32_F32
3293*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
3294*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
3295*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3296*9880d681SAndroid Build Coastguard Worker              "tld4.a.2d.v4.s32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3297*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3298*9880d681SAndroid Build Coastguard Worker              []>;
3299*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_R_2D_U32_F32
3300*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
3301*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
3302*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3303*9880d681SAndroid Build Coastguard Worker              "tld4.r.2d.v4.u32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3304*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3305*9880d681SAndroid Build Coastguard Worker              []>;
3306*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_G_2D_U32_F32
3307*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
3308*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
3309*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3310*9880d681SAndroid Build Coastguard Worker              "tld4.g.2d.v4.u32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3311*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3312*9880d681SAndroid Build Coastguard Worker              []>;
3313*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_B_2D_U32_F32
3314*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
3315*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
3316*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3317*9880d681SAndroid Build Coastguard Worker              "tld4.b.2d.v4.u32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3318*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3319*9880d681SAndroid Build Coastguard Worker              []>;
3320*9880d681SAndroid Build Coastguard Workerdef TLD4_UNIFIED_A_2D_U32_F32
3321*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$v0, Int32Regs:$v1,
3322*9880d681SAndroid Build Coastguard Worker                    Int32Regs:$v2, Int32Regs:$v3),
3323*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$t, Float32Regs:$x, Float32Regs:$y),
3324*9880d681SAndroid Build Coastguard Worker              "tld4.a.2d.v4.u32.f32\t\\{$v0, $v1, $v2, $v3\\}, "
3325*9880d681SAndroid Build Coastguard Worker              "[$t, \\{$x, $y\\}];",
3326*9880d681SAndroid Build Coastguard Worker              []>;
3327*9880d681SAndroid Build Coastguard Worker}
3328*9880d681SAndroid Build Coastguard Worker
3329*9880d681SAndroid Build Coastguard Worker
3330*9880d681SAndroid Build Coastguard Worker
3331*9880d681SAndroid Build Coastguard Worker//=== Surface load instructions
3332*9880d681SAndroid Build Coastguard Worker// .clamp variant
3333*9880d681SAndroid Build Coastguard Workerlet IsSuld = 1 in {
3334*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I8_CLAMP
3335*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3336*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3337*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b8.clamp \\{$r\\}, [$s, \\{$x\\}];",
3338*9880d681SAndroid Build Coastguard Worker              []>;
3339*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I16_CLAMP
3340*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3341*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3342*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b16.clamp \\{$r\\}, [$s, \\{$x\\}];",
3343*9880d681SAndroid Build Coastguard Worker              []>;
3344*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I32_CLAMP
3345*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3346*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3347*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b32.clamp \\{$r\\}, [$s, \\{$x\\}];",
3348*9880d681SAndroid Build Coastguard Worker              []>;
3349*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I64_CLAMP
3350*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3351*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3352*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b64.clamp \\{$r\\}, [$s, \\{$x\\}];",
3353*9880d681SAndroid Build Coastguard Worker              []>;
3354*9880d681SAndroid Build Coastguard Worker
3355*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I8_CLAMP
3356*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3357*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3358*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b8.clamp \\{$r\\}, [$s, \\{$l, $x\\}];",
3359*9880d681SAndroid Build Coastguard Worker              []>;
3360*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I16_CLAMP
3361*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3362*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3363*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b16.clamp \\{$r\\}, [$s, \\{$l, $x\\}];",
3364*9880d681SAndroid Build Coastguard Worker              []>;
3365*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I32_CLAMP
3366*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3367*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3368*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b32.clamp \\{$r\\}, [$s, \\{$l, $x\\}];",
3369*9880d681SAndroid Build Coastguard Worker              []>;
3370*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I64_CLAMP
3371*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3372*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3373*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b64.clamp \\{$r\\}, [$s, \\{$l, $x\\}];",
3374*9880d681SAndroid Build Coastguard Worker              []>;
3375*9880d681SAndroid Build Coastguard Worker
3376*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I8_CLAMP
3377*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3378*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3379*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b8.clamp \\{$r\\}, [$s, \\{$x, $y\\}];",
3380*9880d681SAndroid Build Coastguard Worker              []>;
3381*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I16_CLAMP
3382*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3383*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3384*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b16.clamp \\{$r\\}, [$s, \\{$x, $y\\}];",
3385*9880d681SAndroid Build Coastguard Worker              []>;
3386*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I32_CLAMP
3387*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3388*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3389*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b32.clamp \\{$r\\}, [$s, \\{$x, $y\\}];",
3390*9880d681SAndroid Build Coastguard Worker              []>;
3391*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I64_CLAMP
3392*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3393*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3394*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b64.clamp \\{$r\\}, [$s, \\{$x, $y\\}];",
3395*9880d681SAndroid Build Coastguard Worker              []>;
3396*9880d681SAndroid Build Coastguard Worker
3397*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I8_CLAMP
3398*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3399*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3400*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b8.clamp \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
3401*9880d681SAndroid Build Coastguard Worker              []>;
3402*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I16_CLAMP
3403*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3404*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3405*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b16.clamp \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
3406*9880d681SAndroid Build Coastguard Worker              []>;
3407*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I32_CLAMP
3408*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3409*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3410*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b32.clamp \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
3411*9880d681SAndroid Build Coastguard Worker              []>;
3412*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I64_CLAMP
3413*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3414*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3415*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b64.clamp \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
3416*9880d681SAndroid Build Coastguard Worker              []>;
3417*9880d681SAndroid Build Coastguard Worker
3418*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I8_CLAMP
3419*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3420*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3421*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b8.clamp \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
3422*9880d681SAndroid Build Coastguard Worker              []>;
3423*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I16_CLAMP
3424*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3425*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3426*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b16.clamp \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
3427*9880d681SAndroid Build Coastguard Worker              []>;
3428*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I32_CLAMP
3429*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3430*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3431*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b32.clamp \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
3432*9880d681SAndroid Build Coastguard Worker              []>;
3433*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I64_CLAMP
3434*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3435*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3436*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b64.clamp \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
3437*9880d681SAndroid Build Coastguard Worker              []>;
3438*9880d681SAndroid Build Coastguard Worker}
3439*9880d681SAndroid Build Coastguard Worker
3440*9880d681SAndroid Build Coastguard Workerlet IsSuld = 2 in {
3441*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I8_CLAMP
3442*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3443*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3444*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b8.clamp \\{$r, $g\\}, [$s, \\{$x\\}];",
3445*9880d681SAndroid Build Coastguard Worker              []>;
3446*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I16_CLAMP
3447*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3448*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3449*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b16.clamp \\{$r, $g\\}, [$s, \\{$x\\}];",
3450*9880d681SAndroid Build Coastguard Worker              []>;
3451*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I32_CLAMP
3452*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3453*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3454*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b32.clamp \\{$r, $g\\}, [$s, \\{$x\\}];",
3455*9880d681SAndroid Build Coastguard Worker              []>;
3456*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I64_CLAMP
3457*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3458*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3459*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b64.clamp \\{$r, $g\\}, [$s, \\{$x\\}];",
3460*9880d681SAndroid Build Coastguard Worker              []>;
3461*9880d681SAndroid Build Coastguard Worker
3462*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I8_CLAMP
3463*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3464*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3465*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b8.clamp \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
3466*9880d681SAndroid Build Coastguard Worker              []>;
3467*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I16_CLAMP
3468*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3469*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3470*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b16.clamp \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
3471*9880d681SAndroid Build Coastguard Worker              []>;
3472*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I32_CLAMP
3473*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3474*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3475*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b32.clamp \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
3476*9880d681SAndroid Build Coastguard Worker              []>;
3477*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I64_CLAMP
3478*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3479*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3480*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b64.clamp \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
3481*9880d681SAndroid Build Coastguard Worker              []>;
3482*9880d681SAndroid Build Coastguard Worker
3483*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I8_CLAMP
3484*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3485*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3486*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b8.clamp \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
3487*9880d681SAndroid Build Coastguard Worker              []>;
3488*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I16_CLAMP
3489*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3490*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3491*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b16.clamp \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
3492*9880d681SAndroid Build Coastguard Worker              []>;
3493*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I32_CLAMP
3494*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3495*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3496*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b32.clamp \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
3497*9880d681SAndroid Build Coastguard Worker              []>;
3498*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I64_CLAMP
3499*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3500*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3501*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b64.clamp \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
3502*9880d681SAndroid Build Coastguard Worker              []>;
3503*9880d681SAndroid Build Coastguard Worker
3504*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I8_CLAMP
3505*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3506*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3507*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b8.clamp \\{$r, $g\\}, "
3508*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3509*9880d681SAndroid Build Coastguard Worker              []>;
3510*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I16_CLAMP
3511*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3512*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3513*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b16.clamp \\{$r, $g\\}, "
3514*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3515*9880d681SAndroid Build Coastguard Worker              []>;
3516*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I32_CLAMP
3517*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3518*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3519*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b32.clamp \\{$r, $g\\}, "
3520*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3521*9880d681SAndroid Build Coastguard Worker              []>;
3522*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I64_CLAMP
3523*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3524*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3525*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b64.clamp \\{$r, $g\\}, "
3526*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3527*9880d681SAndroid Build Coastguard Worker              []>;
3528*9880d681SAndroid Build Coastguard Worker
3529*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I8_CLAMP
3530*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3531*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3532*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b8.clamp \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
3533*9880d681SAndroid Build Coastguard Worker              []>;
3534*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I16_CLAMP
3535*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3536*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3537*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b16.clamp \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
3538*9880d681SAndroid Build Coastguard Worker              []>;
3539*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I32_CLAMP
3540*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3541*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3542*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b32.clamp \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
3543*9880d681SAndroid Build Coastguard Worker              []>;
3544*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I64_CLAMP
3545*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3546*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3547*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b64.clamp \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
3548*9880d681SAndroid Build Coastguard Worker              []>;
3549*9880d681SAndroid Build Coastguard Worker}
3550*9880d681SAndroid Build Coastguard Worker
3551*9880d681SAndroid Build Coastguard Workerlet IsSuld = 3 in {
3552*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I8_CLAMP
3553*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3554*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3555*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b8.clamp \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
3556*9880d681SAndroid Build Coastguard Worker              []>;
3557*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I16_CLAMP
3558*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3559*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3560*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b16.clamp \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
3561*9880d681SAndroid Build Coastguard Worker              []>;
3562*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I32_CLAMP
3563*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3564*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3565*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b32.clamp \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
3566*9880d681SAndroid Build Coastguard Worker              []>;
3567*9880d681SAndroid Build Coastguard Worker
3568*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I8_CLAMP
3569*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3570*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3571*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b8.clamp \\{$r, $g, $b, $a\\}, "
3572*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
3573*9880d681SAndroid Build Coastguard Worker              []>;
3574*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I16_CLAMP
3575*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3576*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3577*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b16.clamp \\{$r, $g, $b, $a\\}, "
3578*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
3579*9880d681SAndroid Build Coastguard Worker              []>;
3580*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I32_CLAMP
3581*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3582*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3583*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b32.clamp \\{$r, $g, $b, $a\\}, "
3584*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
3585*9880d681SAndroid Build Coastguard Worker              []>;
3586*9880d681SAndroid Build Coastguard Worker
3587*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I8_CLAMP
3588*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3589*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3590*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b8.clamp \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
3591*9880d681SAndroid Build Coastguard Worker              []>;
3592*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I16_CLAMP
3593*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3594*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3595*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b16.clamp \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
3596*9880d681SAndroid Build Coastguard Worker              []>;
3597*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I32_CLAMP
3598*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3599*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3600*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b32.clamp \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
3601*9880d681SAndroid Build Coastguard Worker              []>;
3602*9880d681SAndroid Build Coastguard Worker
3603*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I8_CLAMP
3604*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3605*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3606*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b8.clamp \\{$r, $g, $b, $a\\}, "
3607*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3608*9880d681SAndroid Build Coastguard Worker              []>;
3609*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I16_CLAMP
3610*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3611*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3612*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b16.clamp \\{$r, $g, $b, $a\\}, "
3613*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3614*9880d681SAndroid Build Coastguard Worker              []>;
3615*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I32_CLAMP
3616*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3617*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3618*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b32.clamp \\{$r, $g, $b, $a\\}, "
3619*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3620*9880d681SAndroid Build Coastguard Worker              []>;
3621*9880d681SAndroid Build Coastguard Worker
3622*9880d681SAndroid Build Coastguard Worker
3623*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I8_CLAMP
3624*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3625*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3626*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b8.clamp \\{$r, $g, $b, $a\\}, "
3627*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
3628*9880d681SAndroid Build Coastguard Worker              []>;
3629*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I16_CLAMP
3630*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3631*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3632*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b16.clamp \\{$r, $g, $b, $a\\}, "
3633*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
3634*9880d681SAndroid Build Coastguard Worker              []>;
3635*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I32_CLAMP
3636*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3637*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3638*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b32.clamp \\{$r, $g, $b, $a\\}, "
3639*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
3640*9880d681SAndroid Build Coastguard Worker              []>;
3641*9880d681SAndroid Build Coastguard Worker}
3642*9880d681SAndroid Build Coastguard Worker
3643*9880d681SAndroid Build Coastguard Worker
3644*9880d681SAndroid Build Coastguard Worker// .trap variant
3645*9880d681SAndroid Build Coastguard Workerlet IsSuld = 1 in {
3646*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I8_TRAP
3647*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3648*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3649*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b8.trap \\{$r\\}, [$s, \\{$x\\}];",
3650*9880d681SAndroid Build Coastguard Worker              []>;
3651*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I16_TRAP
3652*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3653*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3654*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b16.trap \\{$r\\}, [$s, \\{$x\\}];",
3655*9880d681SAndroid Build Coastguard Worker              []>;
3656*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I32_TRAP
3657*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3658*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3659*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b32.trap \\{$r\\}, [$s, \\{$x\\}];",
3660*9880d681SAndroid Build Coastguard Worker              []>;
3661*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I64_TRAP
3662*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3663*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3664*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b64.trap \\{$r\\}, [$s, \\{$x\\}];",
3665*9880d681SAndroid Build Coastguard Worker              []>;
3666*9880d681SAndroid Build Coastguard Worker
3667*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I8_TRAP
3668*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3669*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3670*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b8.trap \\{$r\\}, [$s, \\{$l, $x\\}];",
3671*9880d681SAndroid Build Coastguard Worker              []>;
3672*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I16_TRAP
3673*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3674*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3675*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b16.trap \\{$r\\}, [$s, \\{$l, $x\\}];",
3676*9880d681SAndroid Build Coastguard Worker              []>;
3677*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I32_TRAP
3678*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3679*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3680*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b32.trap \\{$r\\}, [$s, \\{$l, $x\\}];",
3681*9880d681SAndroid Build Coastguard Worker              []>;
3682*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I64_TRAP
3683*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3684*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3685*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b64.trap \\{$r\\}, [$s, \\{$l, $x\\}];",
3686*9880d681SAndroid Build Coastguard Worker              []>;
3687*9880d681SAndroid Build Coastguard Worker
3688*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I8_TRAP
3689*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3690*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3691*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b8.trap \\{$r\\}, [$s, \\{$x, $y\\}];",
3692*9880d681SAndroid Build Coastguard Worker              []>;
3693*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I16_TRAP
3694*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3695*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3696*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b16.trap \\{$r\\}, [$s, \\{$x, $y\\}];",
3697*9880d681SAndroid Build Coastguard Worker              []>;
3698*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I32_TRAP
3699*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3700*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3701*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b32.trap \\{$r\\}, [$s, \\{$x, $y\\}];",
3702*9880d681SAndroid Build Coastguard Worker              []>;
3703*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I64_TRAP
3704*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3705*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3706*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b64.trap \\{$r\\}, [$s, \\{$x, $y\\}];",
3707*9880d681SAndroid Build Coastguard Worker              []>;
3708*9880d681SAndroid Build Coastguard Worker
3709*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I8_TRAP
3710*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3711*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3712*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b8.trap \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
3713*9880d681SAndroid Build Coastguard Worker              []>;
3714*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I16_TRAP
3715*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3716*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3717*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b16.trap \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
3718*9880d681SAndroid Build Coastguard Worker              []>;
3719*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I32_TRAP
3720*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3721*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3722*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b32.trap \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
3723*9880d681SAndroid Build Coastguard Worker              []>;
3724*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I64_TRAP
3725*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3726*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3727*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b64.trap \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
3728*9880d681SAndroid Build Coastguard Worker              []>;
3729*9880d681SAndroid Build Coastguard Worker
3730*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I8_TRAP
3731*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3732*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3733*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b8.trap \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
3734*9880d681SAndroid Build Coastguard Worker              []>;
3735*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I16_TRAP
3736*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3737*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3738*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b16.trap \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
3739*9880d681SAndroid Build Coastguard Worker              []>;
3740*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I32_TRAP
3741*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3742*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3743*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b32.trap \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
3744*9880d681SAndroid Build Coastguard Worker              []>;
3745*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I64_TRAP
3746*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3747*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3748*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b64.trap \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
3749*9880d681SAndroid Build Coastguard Worker              []>;
3750*9880d681SAndroid Build Coastguard Worker}
3751*9880d681SAndroid Build Coastguard Worker
3752*9880d681SAndroid Build Coastguard Workerlet IsSuld = 2 in {
3753*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I8_TRAP
3754*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3755*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3756*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b8.trap \\{$r, $g\\}, [$s, \\{$x\\}];",
3757*9880d681SAndroid Build Coastguard Worker              []>;
3758*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I16_TRAP
3759*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3760*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3761*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b16.trap \\{$r, $g\\}, [$s, \\{$x\\}];",
3762*9880d681SAndroid Build Coastguard Worker              []>;
3763*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I32_TRAP
3764*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3765*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3766*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b32.trap \\{$r, $g\\}, [$s, \\{$x\\}];",
3767*9880d681SAndroid Build Coastguard Worker              []>;
3768*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I64_TRAP
3769*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3770*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3771*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b64.trap \\{$r, $g\\}, [$s, \\{$x\\}];",
3772*9880d681SAndroid Build Coastguard Worker              []>;
3773*9880d681SAndroid Build Coastguard Worker
3774*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I8_TRAP
3775*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3776*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3777*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b8.trap \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
3778*9880d681SAndroid Build Coastguard Worker              []>;
3779*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I16_TRAP
3780*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3781*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3782*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b16.trap \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
3783*9880d681SAndroid Build Coastguard Worker              []>;
3784*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I32_TRAP
3785*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3786*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3787*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b32.trap \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
3788*9880d681SAndroid Build Coastguard Worker              []>;
3789*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I64_TRAP
3790*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3791*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3792*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b64.trap \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
3793*9880d681SAndroid Build Coastguard Worker              []>;
3794*9880d681SAndroid Build Coastguard Worker
3795*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I8_TRAP
3796*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3797*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3798*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b8.trap \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
3799*9880d681SAndroid Build Coastguard Worker              []>;
3800*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I16_TRAP
3801*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3802*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3803*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b16.trap \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
3804*9880d681SAndroid Build Coastguard Worker              []>;
3805*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I32_TRAP
3806*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3807*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3808*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b32.trap \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
3809*9880d681SAndroid Build Coastguard Worker              []>;
3810*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I64_TRAP
3811*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3812*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3813*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b64.trap \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
3814*9880d681SAndroid Build Coastguard Worker              []>;
3815*9880d681SAndroid Build Coastguard Worker
3816*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I8_TRAP
3817*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3818*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3819*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b8.trap \\{$r, $g\\}, "
3820*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3821*9880d681SAndroid Build Coastguard Worker              []>;
3822*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I16_TRAP
3823*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3824*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3825*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b16.trap \\{$r, $g\\}, "
3826*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3827*9880d681SAndroid Build Coastguard Worker              []>;
3828*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I32_TRAP
3829*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3830*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3831*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b32.trap \\{$r, $g\\}, "
3832*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3833*9880d681SAndroid Build Coastguard Worker              []>;
3834*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I64_TRAP
3835*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3836*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3837*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b64.trap \\{$r, $g\\}, "
3838*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3839*9880d681SAndroid Build Coastguard Worker              []>;
3840*9880d681SAndroid Build Coastguard Worker
3841*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I8_TRAP
3842*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3843*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3844*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b8.trap \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
3845*9880d681SAndroid Build Coastguard Worker              []>;
3846*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I16_TRAP
3847*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
3848*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3849*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b16.trap \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
3850*9880d681SAndroid Build Coastguard Worker              []>;
3851*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I32_TRAP
3852*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
3853*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3854*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b32.trap \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
3855*9880d681SAndroid Build Coastguard Worker              []>;
3856*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I64_TRAP
3857*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
3858*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3859*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b64.trap \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
3860*9880d681SAndroid Build Coastguard Worker              []>;
3861*9880d681SAndroid Build Coastguard Worker}
3862*9880d681SAndroid Build Coastguard Worker
3863*9880d681SAndroid Build Coastguard Workerlet IsSuld = 3 in {
3864*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I8_TRAP
3865*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3866*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3867*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b8.trap \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
3868*9880d681SAndroid Build Coastguard Worker              []>;
3869*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I16_TRAP
3870*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3871*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3872*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b16.trap \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
3873*9880d681SAndroid Build Coastguard Worker              []>;
3874*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I32_TRAP
3875*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3876*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3877*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b32.trap \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
3878*9880d681SAndroid Build Coastguard Worker              []>;
3879*9880d681SAndroid Build Coastguard Worker
3880*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I8_TRAP
3881*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3882*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3883*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b8.trap \\{$r, $g, $b, $a\\}, "
3884*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
3885*9880d681SAndroid Build Coastguard Worker              []>;
3886*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I16_TRAP
3887*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3888*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3889*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b16.trap \\{$r, $g, $b, $a\\}, "
3890*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
3891*9880d681SAndroid Build Coastguard Worker              []>;
3892*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I32_TRAP
3893*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3894*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3895*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b32.trap \\{$r, $g, $b, $a\\}, "
3896*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
3897*9880d681SAndroid Build Coastguard Worker              []>;
3898*9880d681SAndroid Build Coastguard Worker
3899*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I8_TRAP
3900*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3901*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3902*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b8.trap \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
3903*9880d681SAndroid Build Coastguard Worker              []>;
3904*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I16_TRAP
3905*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3906*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3907*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b16.trap \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
3908*9880d681SAndroid Build Coastguard Worker              []>;
3909*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I32_TRAP
3910*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3911*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
3912*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b32.trap \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
3913*9880d681SAndroid Build Coastguard Worker              []>;
3914*9880d681SAndroid Build Coastguard Worker
3915*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I8_TRAP
3916*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3917*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3918*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b8.trap \\{$r, $g, $b, $a\\}, "
3919*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3920*9880d681SAndroid Build Coastguard Worker              []>;
3921*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I16_TRAP
3922*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3923*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3924*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b16.trap \\{$r, $g, $b, $a\\}, "
3925*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3926*9880d681SAndroid Build Coastguard Worker              []>;
3927*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I32_TRAP
3928*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3929*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
3930*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b32.trap \\{$r, $g, $b, $a\\}, "
3931*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
3932*9880d681SAndroid Build Coastguard Worker              []>;
3933*9880d681SAndroid Build Coastguard Worker
3934*9880d681SAndroid Build Coastguard Worker
3935*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I8_TRAP
3936*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3937*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3938*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b8.trap \\{$r, $g, $b, $a\\}, "
3939*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
3940*9880d681SAndroid Build Coastguard Worker              []>;
3941*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I16_TRAP
3942*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
3943*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3944*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b16.trap \\{$r, $g, $b, $a\\}, "
3945*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
3946*9880d681SAndroid Build Coastguard Worker              []>;
3947*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I32_TRAP
3948*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
3949*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
3950*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b32.trap \\{$r, $g, $b, $a\\}, "
3951*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
3952*9880d681SAndroid Build Coastguard Worker              []>;
3953*9880d681SAndroid Build Coastguard Worker}
3954*9880d681SAndroid Build Coastguard Worker
3955*9880d681SAndroid Build Coastguard Worker// .zero variant
3956*9880d681SAndroid Build Coastguard Workerlet IsSuld = 1 in {
3957*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I8_ZERO
3958*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3959*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3960*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b8.zero \\{$r\\}, [$s, \\{$x\\}];",
3961*9880d681SAndroid Build Coastguard Worker              []>;
3962*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I16_ZERO
3963*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3964*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3965*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b16.zero \\{$r\\}, [$s, \\{$x\\}];",
3966*9880d681SAndroid Build Coastguard Worker              []>;
3967*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I32_ZERO
3968*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3969*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3970*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b32.zero \\{$r\\}, [$s, \\{$x\\}];",
3971*9880d681SAndroid Build Coastguard Worker              []>;
3972*9880d681SAndroid Build Coastguard Workerdef SULD_1D_I64_ZERO
3973*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3974*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
3975*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.b64.zero \\{$r\\}, [$s, \\{$x\\}];",
3976*9880d681SAndroid Build Coastguard Worker              []>;
3977*9880d681SAndroid Build Coastguard Worker
3978*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I8_ZERO
3979*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3980*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3981*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b8.zero \\{$r\\}, [$s, \\{$l, $x\\}];",
3982*9880d681SAndroid Build Coastguard Worker              []>;
3983*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I16_ZERO
3984*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
3985*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3986*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b16.zero \\{$r\\}, [$s, \\{$l, $x\\}];",
3987*9880d681SAndroid Build Coastguard Worker              []>;
3988*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I32_ZERO
3989*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
3990*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3991*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b32.zero \\{$r\\}, [$s, \\{$l, $x\\}];",
3992*9880d681SAndroid Build Coastguard Worker              []>;
3993*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_I64_ZERO
3994*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
3995*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
3996*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.b64.zero \\{$r\\}, [$s, \\{$l, $x\\}];",
3997*9880d681SAndroid Build Coastguard Worker              []>;
3998*9880d681SAndroid Build Coastguard Worker
3999*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I8_ZERO
4000*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
4001*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4002*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b8.zero \\{$r\\}, [$s, \\{$x, $y\\}];",
4003*9880d681SAndroid Build Coastguard Worker              []>;
4004*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I16_ZERO
4005*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
4006*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4007*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b16.zero \\{$r\\}, [$s, \\{$x, $y\\}];",
4008*9880d681SAndroid Build Coastguard Worker              []>;
4009*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I32_ZERO
4010*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
4011*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4012*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b32.zero \\{$r\\}, [$s, \\{$x, $y\\}];",
4013*9880d681SAndroid Build Coastguard Worker              []>;
4014*9880d681SAndroid Build Coastguard Workerdef SULD_2D_I64_ZERO
4015*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
4016*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4017*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.b64.zero \\{$r\\}, [$s, \\{$x, $y\\}];",
4018*9880d681SAndroid Build Coastguard Worker              []>;
4019*9880d681SAndroid Build Coastguard Worker
4020*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I8_ZERO
4021*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
4022*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4023*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b8.zero \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
4024*9880d681SAndroid Build Coastguard Worker              []>;
4025*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I16_ZERO
4026*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
4027*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4028*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b16.zero \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
4029*9880d681SAndroid Build Coastguard Worker              []>;
4030*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I32_ZERO
4031*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
4032*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4033*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b32.zero \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
4034*9880d681SAndroid Build Coastguard Worker              []>;
4035*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_I64_ZERO
4036*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
4037*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4038*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.b64.zero \\{$r\\}, [$s, \\{$l, $x, $y, $y\\}];",
4039*9880d681SAndroid Build Coastguard Worker              []>;
4040*9880d681SAndroid Build Coastguard Worker
4041*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I8_ZERO
4042*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
4043*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4044*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b8.zero \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
4045*9880d681SAndroid Build Coastguard Worker              []>;
4046*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I16_ZERO
4047*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r),
4048*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4049*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b16.zero \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
4050*9880d681SAndroid Build Coastguard Worker              []>;
4051*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I32_ZERO
4052*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r),
4053*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4054*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b32.zero \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
4055*9880d681SAndroid Build Coastguard Worker              []>;
4056*9880d681SAndroid Build Coastguard Workerdef SULD_3D_I64_ZERO
4057*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r),
4058*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4059*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.b64.zero \\{$r\\}, [$s, \\{$x, $y, $z, $z\\}];",
4060*9880d681SAndroid Build Coastguard Worker              []>;
4061*9880d681SAndroid Build Coastguard Worker}
4062*9880d681SAndroid Build Coastguard Worker
4063*9880d681SAndroid Build Coastguard Workerlet IsSuld = 2 in {
4064*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I8_ZERO
4065*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4066*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
4067*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b8.zero \\{$r, $g\\}, [$s, \\{$x\\}];",
4068*9880d681SAndroid Build Coastguard Worker              []>;
4069*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I16_ZERO
4070*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4071*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
4072*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b16.zero \\{$r, $g\\}, [$s, \\{$x\\}];",
4073*9880d681SAndroid Build Coastguard Worker              []>;
4074*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I32_ZERO
4075*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
4076*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
4077*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b32.zero \\{$r, $g\\}, [$s, \\{$x\\}];",
4078*9880d681SAndroid Build Coastguard Worker              []>;
4079*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V2I64_ZERO
4080*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
4081*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
4082*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v2.b64.zero \\{$r, $g\\}, [$s, \\{$x\\}];",
4083*9880d681SAndroid Build Coastguard Worker              []>;
4084*9880d681SAndroid Build Coastguard Worker
4085*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I8_ZERO
4086*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4087*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
4088*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b8.zero \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
4089*9880d681SAndroid Build Coastguard Worker              []>;
4090*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I16_ZERO
4091*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4092*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
4093*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b16.zero \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
4094*9880d681SAndroid Build Coastguard Worker              []>;
4095*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I32_ZERO
4096*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
4097*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
4098*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b32.zero \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
4099*9880d681SAndroid Build Coastguard Worker              []>;
4100*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V2I64_ZERO
4101*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
4102*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
4103*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v2.b64.zero \\{$r, $g\\}, [$s, \\{$l, $x\\}];",
4104*9880d681SAndroid Build Coastguard Worker              []>;
4105*9880d681SAndroid Build Coastguard Worker
4106*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I8_ZERO
4107*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4108*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4109*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b8.zero \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
4110*9880d681SAndroid Build Coastguard Worker              []>;
4111*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I16_ZERO
4112*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4113*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4114*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b16.zero \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
4115*9880d681SAndroid Build Coastguard Worker              []>;
4116*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I32_ZERO
4117*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
4118*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4119*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b32.zero \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
4120*9880d681SAndroid Build Coastguard Worker              []>;
4121*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V2I64_ZERO
4122*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
4123*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4124*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v2.b64.zero \\{$r, $g\\}, [$s, \\{$x, $y\\}];",
4125*9880d681SAndroid Build Coastguard Worker              []>;
4126*9880d681SAndroid Build Coastguard Worker
4127*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I8_ZERO
4128*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4129*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4130*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b8.zero \\{$r, $g\\}, "
4131*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
4132*9880d681SAndroid Build Coastguard Worker              []>;
4133*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I16_ZERO
4134*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4135*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4136*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b16.zero \\{$r, $g\\}, "
4137*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
4138*9880d681SAndroid Build Coastguard Worker              []>;
4139*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I32_ZERO
4140*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
4141*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4142*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b32.zero \\{$r, $g\\}, "
4143*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
4144*9880d681SAndroid Build Coastguard Worker              []>;
4145*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V2I64_ZERO
4146*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
4147*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4148*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v2.b64.zero \\{$r, $g\\}, "
4149*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
4150*9880d681SAndroid Build Coastguard Worker              []>;
4151*9880d681SAndroid Build Coastguard Worker
4152*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I8_ZERO
4153*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4154*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4155*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b8.zero \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
4156*9880d681SAndroid Build Coastguard Worker              []>;
4157*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I16_ZERO
4158*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g),
4159*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4160*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b16.zero \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
4161*9880d681SAndroid Build Coastguard Worker              []>;
4162*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I32_ZERO
4163*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g),
4164*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4165*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b32.zero \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
4166*9880d681SAndroid Build Coastguard Worker              []>;
4167*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V2I64_ZERO
4168*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$r, Int64Regs:$g),
4169*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4170*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v2.b64.zero \\{$r, $g\\}, [$s, \\{$x, $y, $z, $z\\}];",
4171*9880d681SAndroid Build Coastguard Worker              []>;
4172*9880d681SAndroid Build Coastguard Worker}
4173*9880d681SAndroid Build Coastguard Worker
4174*9880d681SAndroid Build Coastguard Workerlet IsSuld = 3 in {
4175*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I8_ZERO
4176*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4177*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
4178*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b8.zero \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
4179*9880d681SAndroid Build Coastguard Worker              []>;
4180*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I16_ZERO
4181*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4182*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
4183*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b16.zero \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
4184*9880d681SAndroid Build Coastguard Worker              []>;
4185*9880d681SAndroid Build Coastguard Workerdef SULD_1D_V4I32_ZERO
4186*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4187*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x),
4188*9880d681SAndroid Build Coastguard Worker              "suld.b.1d.v4.b32.zero \\{$r, $g, $b, $a\\}, [$s, \\{$x\\}];",
4189*9880d681SAndroid Build Coastguard Worker              []>;
4190*9880d681SAndroid Build Coastguard Worker
4191*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I8_ZERO
4192*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4193*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
4194*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b8.zero \\{$r, $g, $b, $a\\}, "
4195*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
4196*9880d681SAndroid Build Coastguard Worker              []>;
4197*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I16_ZERO
4198*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4199*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
4200*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b16.zero \\{$r, $g, $b, $a\\}, "
4201*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
4202*9880d681SAndroid Build Coastguard Worker              []>;
4203*9880d681SAndroid Build Coastguard Workerdef SULD_1D_ARRAY_V4I32_ZERO
4204*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4205*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x),
4206*9880d681SAndroid Build Coastguard Worker              "suld.b.a1d.v4.b32.zero \\{$r, $g, $b, $a\\}, "
4207*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x\\}];",
4208*9880d681SAndroid Build Coastguard Worker              []>;
4209*9880d681SAndroid Build Coastguard Worker
4210*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I8_ZERO
4211*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4212*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4213*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b8.zero \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
4214*9880d681SAndroid Build Coastguard Worker              []>;
4215*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I16_ZERO
4216*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4217*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4218*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b16.zero \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
4219*9880d681SAndroid Build Coastguard Worker              []>;
4220*9880d681SAndroid Build Coastguard Workerdef SULD_2D_V4I32_ZERO
4221*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4222*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y),
4223*9880d681SAndroid Build Coastguard Worker              "suld.b.2d.v4.b32.zero \\{$r, $g, $b, $a\\}, [$s, \\{$x, $y\\}];",
4224*9880d681SAndroid Build Coastguard Worker              []>;
4225*9880d681SAndroid Build Coastguard Worker
4226*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I8_ZERO
4227*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4228*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4229*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b8.zero \\{$r, $g, $b, $a\\}, "
4230*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
4231*9880d681SAndroid Build Coastguard Worker              []>;
4232*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I16_ZERO
4233*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4234*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4235*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b16.zero \\{$r, $g, $b, $a\\}, "
4236*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
4237*9880d681SAndroid Build Coastguard Worker              []>;
4238*9880d681SAndroid Build Coastguard Workerdef SULD_2D_ARRAY_V4I32_ZERO
4239*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4240*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y),
4241*9880d681SAndroid Build Coastguard Worker              "suld.b.a2d.v4.b32.zero \\{$r, $g, $b, $a\\}, "
4242*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$l, $x, $y, $y\\}];",
4243*9880d681SAndroid Build Coastguard Worker              []>;
4244*9880d681SAndroid Build Coastguard Worker
4245*9880d681SAndroid Build Coastguard Worker
4246*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I8_ZERO
4247*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4248*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4249*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b8.zero \\{$r, $g, $b, $a\\}, "
4250*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
4251*9880d681SAndroid Build Coastguard Worker              []>;
4252*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I16_ZERO
4253*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4254*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4255*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b16.zero \\{$r, $g, $b, $a\\}, "
4256*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
4257*9880d681SAndroid Build Coastguard Worker              []>;
4258*9880d681SAndroid Build Coastguard Workerdef SULD_3D_V4I32_ZERO
4259*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4260*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z),
4261*9880d681SAndroid Build Coastguard Worker              "suld.b.3d.v4.b32.zero \\{$r, $g, $b, $a\\}, "
4262*9880d681SAndroid Build Coastguard Worker              "[$s, \\{$x, $y, $z, $z\\}];",
4263*9880d681SAndroid Build Coastguard Worker              []>;
4264*9880d681SAndroid Build Coastguard Worker}
4265*9880d681SAndroid Build Coastguard Worker
4266*9880d681SAndroid Build Coastguard Worker//-----------------------------------
4267*9880d681SAndroid Build Coastguard Worker// Texture Query Intrinsics
4268*9880d681SAndroid Build Coastguard Worker//-----------------------------------
4269*9880d681SAndroid Build Coastguard Worker
4270*9880d681SAndroid Build Coastguard Workerlet IsSurfTexQuery = 1 in {
4271*9880d681SAndroid Build Coastguard Workerdef TXQ_CHANNEL_ORDER
4272*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4273*9880d681SAndroid Build Coastguard Worker              "txq.channel_order.b32 \t$d, [$a];",
4274*9880d681SAndroid Build Coastguard Worker              []>;
4275*9880d681SAndroid Build Coastguard Workerdef TXQ_CHANNEL_DATA_TYPE
4276*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4277*9880d681SAndroid Build Coastguard Worker              "txq.channel_data_type.b32 \t$d, [$a];",
4278*9880d681SAndroid Build Coastguard Worker              []>;
4279*9880d681SAndroid Build Coastguard Workerdef TXQ_WIDTH
4280*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4281*9880d681SAndroid Build Coastguard Worker              "txq.width.b32 \t$d, [$a];",
4282*9880d681SAndroid Build Coastguard Worker              []>;
4283*9880d681SAndroid Build Coastguard Workerdef TXQ_HEIGHT
4284*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4285*9880d681SAndroid Build Coastguard Worker              "txq.height.b32 \t$d, [$a];",
4286*9880d681SAndroid Build Coastguard Worker              []>;
4287*9880d681SAndroid Build Coastguard Workerdef TXQ_DEPTH
4288*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4289*9880d681SAndroid Build Coastguard Worker              "txq.depth.b32 \t$d, [$a];",
4290*9880d681SAndroid Build Coastguard Worker              []>;
4291*9880d681SAndroid Build Coastguard Workerdef TXQ_ARRAY_SIZE
4292*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4293*9880d681SAndroid Build Coastguard Worker              "txq.array_size.b32 \t$d, [$a];",
4294*9880d681SAndroid Build Coastguard Worker              []>;
4295*9880d681SAndroid Build Coastguard Workerdef TXQ_NUM_SAMPLES
4296*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4297*9880d681SAndroid Build Coastguard Worker              "txq.num_samples.b32 \t$d, [$a];",
4298*9880d681SAndroid Build Coastguard Worker              []>;
4299*9880d681SAndroid Build Coastguard Workerdef TXQ_NUM_MIPMAP_LEVELS
4300*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4301*9880d681SAndroid Build Coastguard Worker              "txq.num_mipmap_levels.b32 \t$d, [$a];",
4302*9880d681SAndroid Build Coastguard Worker              []>;
4303*9880d681SAndroid Build Coastguard Worker}
4304*9880d681SAndroid Build Coastguard Worker
4305*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_txq_channel_order Int64Regs:$a),
4306*9880d681SAndroid Build Coastguard Worker          (TXQ_CHANNEL_ORDER Int64Regs:$a)>;
4307*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_txq_channel_data_type Int64Regs:$a),
4308*9880d681SAndroid Build Coastguard Worker          (TXQ_CHANNEL_DATA_TYPE Int64Regs:$a)>;
4309*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_txq_width Int64Regs:$a),
4310*9880d681SAndroid Build Coastguard Worker          (TXQ_WIDTH Int64Regs:$a)>;
4311*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_txq_height Int64Regs:$a),
4312*9880d681SAndroid Build Coastguard Worker          (TXQ_HEIGHT Int64Regs:$a)>;
4313*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_txq_depth Int64Regs:$a),
4314*9880d681SAndroid Build Coastguard Worker          (TXQ_DEPTH Int64Regs:$a)>;
4315*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_txq_array_size Int64Regs:$a),
4316*9880d681SAndroid Build Coastguard Worker          (TXQ_ARRAY_SIZE Int64Regs:$a)>;
4317*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_txq_num_samples Int64Regs:$a),
4318*9880d681SAndroid Build Coastguard Worker          (TXQ_NUM_SAMPLES Int64Regs:$a)>;
4319*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_txq_num_mipmap_levels Int64Regs:$a),
4320*9880d681SAndroid Build Coastguard Worker          (TXQ_NUM_MIPMAP_LEVELS Int64Regs:$a)>;
4321*9880d681SAndroid Build Coastguard Worker
4322*9880d681SAndroid Build Coastguard Worker
4323*9880d681SAndroid Build Coastguard Worker//-----------------------------------
4324*9880d681SAndroid Build Coastguard Worker// Surface Query Intrinsics
4325*9880d681SAndroid Build Coastguard Worker//-----------------------------------
4326*9880d681SAndroid Build Coastguard Worker
4327*9880d681SAndroid Build Coastguard Workerlet IsSurfTexQuery = 1 in {
4328*9880d681SAndroid Build Coastguard Workerdef SUQ_CHANNEL_ORDER
4329*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4330*9880d681SAndroid Build Coastguard Worker              "suq.channel_order.b32 \t$d, [$a];",
4331*9880d681SAndroid Build Coastguard Worker              []>;
4332*9880d681SAndroid Build Coastguard Workerdef SUQ_CHANNEL_DATA_TYPE
4333*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4334*9880d681SAndroid Build Coastguard Worker              "suq.channel_data_type.b32 \t$d, [$a];",
4335*9880d681SAndroid Build Coastguard Worker              []>;
4336*9880d681SAndroid Build Coastguard Workerdef SUQ_WIDTH
4337*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4338*9880d681SAndroid Build Coastguard Worker              "suq.width.b32 \t$d, [$a];",
4339*9880d681SAndroid Build Coastguard Worker              []>;
4340*9880d681SAndroid Build Coastguard Workerdef SUQ_HEIGHT
4341*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4342*9880d681SAndroid Build Coastguard Worker              "suq.height.b32 \t$d, [$a];",
4343*9880d681SAndroid Build Coastguard Worker              []>;
4344*9880d681SAndroid Build Coastguard Workerdef SUQ_DEPTH
4345*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4346*9880d681SAndroid Build Coastguard Worker              "suq.depth.b32 \t$d, [$a];",
4347*9880d681SAndroid Build Coastguard Worker              []>;
4348*9880d681SAndroid Build Coastguard Workerdef SUQ_ARRAY_SIZE
4349*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins Int64Regs:$a),
4350*9880d681SAndroid Build Coastguard Worker              "suq.array_size.b32 \t$d, [$a];",
4351*9880d681SAndroid Build Coastguard Worker              []>;
4352*9880d681SAndroid Build Coastguard Worker}
4353*9880d681SAndroid Build Coastguard Worker
4354*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_suq_channel_order Int64Regs:$a),
4355*9880d681SAndroid Build Coastguard Worker          (SUQ_CHANNEL_ORDER Int64Regs:$a)>;
4356*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_suq_channel_data_type Int64Regs:$a),
4357*9880d681SAndroid Build Coastguard Worker          (SUQ_CHANNEL_DATA_TYPE Int64Regs:$a)>;
4358*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_suq_width Int64Regs:$a),
4359*9880d681SAndroid Build Coastguard Worker          (SUQ_WIDTH Int64Regs:$a)>;
4360*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_suq_height Int64Regs:$a),
4361*9880d681SAndroid Build Coastguard Worker          (SUQ_HEIGHT Int64Regs:$a)>;
4362*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_suq_depth Int64Regs:$a),
4363*9880d681SAndroid Build Coastguard Worker          (SUQ_DEPTH Int64Regs:$a)>;
4364*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_suq_array_size Int64Regs:$a),
4365*9880d681SAndroid Build Coastguard Worker          (SUQ_ARRAY_SIZE Int64Regs:$a)>;
4366*9880d681SAndroid Build Coastguard Worker
4367*9880d681SAndroid Build Coastguard Worker
4368*9880d681SAndroid Build Coastguard Worker//===- Handle Query -------------------------------------------------------===//
4369*9880d681SAndroid Build Coastguard Worker
4370*9880d681SAndroid Build Coastguard Worker// TODO: These intrinsics are not yet finalized, pending PTX ISA design work
4371*9880d681SAndroid Build Coastguard Workerdef ISTYPEP_SAMPLER
4372*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int64Regs:$a),
4373*9880d681SAndroid Build Coastguard Worker              "istypep.samplerref \t$d, $a;",
4374*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_istypep_sampler Int64Regs:$a))]>;
4375*9880d681SAndroid Build Coastguard Workerdef ISTYPEP_SURFACE
4376*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int64Regs:$a),
4377*9880d681SAndroid Build Coastguard Worker              "istypep.surfref \t$d, $a;",
4378*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_istypep_surface Int64Regs:$a))]>;
4379*9880d681SAndroid Build Coastguard Workerdef ISTYPEP_TEXTURE
4380*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int1Regs:$d), (ins Int64Regs:$a),
4381*9880d681SAndroid Build Coastguard Worker              "istypep.texref \t$d, $a;",
4382*9880d681SAndroid Build Coastguard Worker              [(set Int1Regs:$d, (int_nvvm_istypep_texture Int64Regs:$a))]>;
4383*9880d681SAndroid Build Coastguard Worker
4384*9880d681SAndroid Build Coastguard Worker//===- Surface Stores -----------------------------------------------------===//
4385*9880d681SAndroid Build Coastguard Worker
4386*9880d681SAndroid Build Coastguard Workerlet IsSust = 1 in {
4387*9880d681SAndroid Build Coastguard Worker// Unformatted
4388*9880d681SAndroid Build Coastguard Worker// .clamp variant
4389*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B8_CLAMP
4390*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4391*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
4392*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b8.clamp \t[$s, \\{$x\\}], \\{$r\\};",
4393*9880d681SAndroid Build Coastguard Worker              []>;
4394*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B16_CLAMP
4395*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4396*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
4397*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b16.clamp \t[$s, \\{$x\\}], \\{$r\\};",
4398*9880d681SAndroid Build Coastguard Worker              []>;
4399*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B32_CLAMP
4400*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4401*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r),
4402*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b32.clamp \t[$s, \\{$x\\}], \\{$r\\};",
4403*9880d681SAndroid Build Coastguard Worker              []>;
4404*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B64_CLAMP
4405*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4406*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int64Regs:$r),
4407*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b64.clamp \t[$s, \\{$x\\}], \\{$r\\};",
4408*9880d681SAndroid Build Coastguard Worker              []>;
4409*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B8_CLAMP
4410*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4411*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
4412*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b8.clamp \t[$s, \\{$x\\}], \\{$r, $g\\};",
4413*9880d681SAndroid Build Coastguard Worker              []>;
4414*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B16_CLAMP
4415*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4416*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
4417*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b16.clamp \t[$s, \\{$x\\}], \\{$r, $g\\};",
4418*9880d681SAndroid Build Coastguard Worker              []>;
4419*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B32_CLAMP
4420*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4421*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
4422*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b32.clamp \t[$s, \\{$x\\}], \\{$r, $g\\};",
4423*9880d681SAndroid Build Coastguard Worker              []>;
4424*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B64_CLAMP
4425*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4426*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
4427*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b64.clamp \t[$s, \\{$x\\}], \\{$r, $g\\};",
4428*9880d681SAndroid Build Coastguard Worker              []>;
4429*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B8_CLAMP
4430*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4431*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g,
4432*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$b, Int16Regs:$a),
4433*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b8.clamp \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
4434*9880d681SAndroid Build Coastguard Worker              []>;
4435*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B16_CLAMP
4436*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4437*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g,
4438*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$b, Int16Regs:$a),
4439*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b16.clamp \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
4440*9880d681SAndroid Build Coastguard Worker              []>;
4441*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B32_CLAMP
4442*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4443*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g,
4444*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$b, Int32Regs:$a),
4445*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b32.clamp \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
4446*9880d681SAndroid Build Coastguard Worker              []>;
4447*9880d681SAndroid Build Coastguard Worker
4448*9880d681SAndroid Build Coastguard Worker
4449*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B8_CLAMP
4450*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4451*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r),
4452*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b8.clamp \t[$s, \\{$idx, $x\\}], \\{$r\\};",
4453*9880d681SAndroid Build Coastguard Worker              []>;
4454*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B16_CLAMP
4455*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4456*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r),
4457*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b16.clamp \t[$s, \\{$idx, $x\\}], \\{$r\\};",
4458*9880d681SAndroid Build Coastguard Worker              []>;
4459*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B32_CLAMP
4460*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4461*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r),
4462*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b32.clamp \t[$s, \\{$idx, $x\\}], \\{$r\\};",
4463*9880d681SAndroid Build Coastguard Worker              []>;
4464*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B64_CLAMP
4465*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4466*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int64Regs:$r),
4467*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b64.clamp \t[$s, \\{$idx, $x\\}], \\{$r\\};",
4468*9880d681SAndroid Build Coastguard Worker              []>;
4469*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B8_CLAMP
4470*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4471*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
4472*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
4473*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b8.clamp \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
4474*9880d681SAndroid Build Coastguard Worker              []>;
4475*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B16_CLAMP
4476*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4477*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
4478*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
4479*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b16.clamp \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
4480*9880d681SAndroid Build Coastguard Worker              []>;
4481*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B32_CLAMP
4482*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4483*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r,
4484*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g),
4485*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b32.clamp \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
4486*9880d681SAndroid Build Coastguard Worker              []>;
4487*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B64_CLAMP
4488*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4489*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int64Regs:$r,
4490*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$g),
4491*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b64.clamp \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
4492*9880d681SAndroid Build Coastguard Worker              []>;
4493*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B8_CLAMP
4494*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4495*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
4496*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4497*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v4.b8.clamp \t[$s, \\{$idx, $x\\}], "
4498*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g, $b, $a\\};",
4499*9880d681SAndroid Build Coastguard Worker              []>;
4500*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B16_CLAMP
4501*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4502*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
4503*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4504*9880d681SAndroid Build Coastguard Worker             "sust.b.a1d.v4.b16.clamp \t[$s, \\{$idx, $x\\}], "
4505*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
4506*9880d681SAndroid Build Coastguard Worker              []>;
4507*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B32_CLAMP
4508*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4509*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r,
4510*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4511*9880d681SAndroid Build Coastguard Worker             "sust.b.a1d.v4.b32.clamp \t[$s, \\{$idx, $x\\}], "
4512*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
4513*9880d681SAndroid Build Coastguard Worker              []>;
4514*9880d681SAndroid Build Coastguard Worker
4515*9880d681SAndroid Build Coastguard Worker
4516*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B8_CLAMP
4517*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4518*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
4519*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b8.clamp \t[$s, \\{$x, $y\\}], \\{$r\\};",
4520*9880d681SAndroid Build Coastguard Worker              []>;
4521*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B16_CLAMP
4522*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4523*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
4524*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b16.clamp \t[$s, \\{$x, $y\\}], \\{$r\\};",
4525*9880d681SAndroid Build Coastguard Worker              []>;
4526*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B32_CLAMP
4527*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4528*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
4529*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b32.clamp \t[$s, \\{$x, $y\\}], \\{$r\\};",
4530*9880d681SAndroid Build Coastguard Worker              []>;
4531*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B64_CLAMP
4532*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4533*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
4534*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b64.clamp \t[$s, \\{$x, $y\\}], \\{$r\\};",
4535*9880d681SAndroid Build Coastguard Worker              []>;
4536*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B8_CLAMP
4537*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4538*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
4539*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
4540*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b8.clamp \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
4541*9880d681SAndroid Build Coastguard Worker              []>;
4542*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B16_CLAMP
4543*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4544*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
4545*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
4546*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b16.clamp \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
4547*9880d681SAndroid Build Coastguard Worker              []>;
4548*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B32_CLAMP
4549*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4550*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
4551*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g),
4552*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b32.clamp \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
4553*9880d681SAndroid Build Coastguard Worker              []>;
4554*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B64_CLAMP
4555*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4556*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r,
4557*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$g),
4558*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b64.clamp \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
4559*9880d681SAndroid Build Coastguard Worker              []>;
4560*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B8_CLAMP
4561*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4562*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
4563*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4564*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v4.b8.clamp \t[$s, \\{$x, $y\\}], "
4565*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g, $b, $a\\};",
4566*9880d681SAndroid Build Coastguard Worker              []>;
4567*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B16_CLAMP
4568*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4569*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
4570*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4571*9880d681SAndroid Build Coastguard Worker             "sust.b.2d.v4.b16.clamp \t[$s, \\{$x, $y\\}], "
4572*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
4573*9880d681SAndroid Build Coastguard Worker              []>;
4574*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B32_CLAMP
4575*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4576*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
4577*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4578*9880d681SAndroid Build Coastguard Worker             "sust.b.2d.v4.b32.clamp \t[$s, \\{$x, $y\\}], "
4579*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
4580*9880d681SAndroid Build Coastguard Worker              []>;
4581*9880d681SAndroid Build Coastguard Worker
4582*9880d681SAndroid Build Coastguard Worker
4583*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B8_CLAMP
4584*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4585*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4586*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
4587*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b8.clamp \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
4588*9880d681SAndroid Build Coastguard Worker              []>;
4589*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B16_CLAMP
4590*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4591*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4592*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
4593*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b16.clamp \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
4594*9880d681SAndroid Build Coastguard Worker              []>;
4595*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B32_CLAMP
4596*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4597*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4598*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r),
4599*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b32.clamp \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
4600*9880d681SAndroid Build Coastguard Worker              []>;
4601*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B64_CLAMP
4602*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4603*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4604*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r),
4605*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b64.clamp \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
4606*9880d681SAndroid Build Coastguard Worker              []>;
4607*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B8_CLAMP
4608*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4609*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4610*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
4611*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.v2.b8.clamp \t[$s, \\{$idx, $x, $y, $y\\}], "
4612*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
4613*9880d681SAndroid Build Coastguard Worker              []>;
4614*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B16_CLAMP
4615*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4616*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4617*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
4618*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b16.clamp \t[$s, \\{$idx, $x, $y, $y\\}], "
4619*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
4620*9880d681SAndroid Build Coastguard Worker              []>;
4621*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B32_CLAMP
4622*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4623*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4624*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g),
4625*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b32.clamp \t[$s, \\{$idx, $x, $y, $y\\}], "
4626*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
4627*9880d681SAndroid Build Coastguard Worker              []>;
4628*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B64_CLAMP
4629*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4630*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4631*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r, Int64Regs:$g),
4632*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b64.clamp \t[$s, \\{$idx, $x, $y, $y\\}], "
4633*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
4634*9880d681SAndroid Build Coastguard Worker              []>;
4635*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B8_CLAMP
4636*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4637*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4638*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4639*9880d681SAndroid Build Coastguard Worker      "sust.b.a2d.v4.b8.clamp \t[$s, \\{$idx, $x, $y, $y\\}], "
4640*9880d681SAndroid Build Coastguard Worker      "\\{$r, $g, $b, $a\\};",
4641*9880d681SAndroid Build Coastguard Worker              []>;
4642*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B16_CLAMP
4643*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4644*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4645*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4646*9880d681SAndroid Build Coastguard Worker     "sust.b.a2d.v4.b16.clamp \t[$s, \\{$idx, $x, $y, $y\\}], "
4647*9880d681SAndroid Build Coastguard Worker     "\\{$r, $g, $b, $a\\};",
4648*9880d681SAndroid Build Coastguard Worker              []>;
4649*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B32_CLAMP
4650*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4651*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4652*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4653*9880d681SAndroid Build Coastguard Worker     "sust.b.a2d.v4.b32.clamp \t[$s, \\{$idx, $x, $y, $y\\}], "
4654*9880d681SAndroid Build Coastguard Worker     "\\{$r, $g, $b, $a\\};",
4655*9880d681SAndroid Build Coastguard Worker              []>;
4656*9880d681SAndroid Build Coastguard Worker
4657*9880d681SAndroid Build Coastguard Worker
4658*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B8_CLAMP
4659*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4660*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4661*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
4662*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b8.clamp \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
4663*9880d681SAndroid Build Coastguard Worker              []>;
4664*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B16_CLAMP
4665*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4666*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4667*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
4668*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b16.clamp \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
4669*9880d681SAndroid Build Coastguard Worker              []>;
4670*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B32_CLAMP
4671*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4672*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4673*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r),
4674*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b32.clamp \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
4675*9880d681SAndroid Build Coastguard Worker              []>;
4676*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B64_CLAMP
4677*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4678*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4679*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r),
4680*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b64.clamp \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
4681*9880d681SAndroid Build Coastguard Worker              []>;
4682*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B8_CLAMP
4683*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4684*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4685*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
4686*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b8.clamp \t[$s, \\{$x, $y, $z, $z\\}], "
4687*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
4688*9880d681SAndroid Build Coastguard Worker              []>;
4689*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B16_CLAMP
4690*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4691*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4692*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
4693*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b16.clamp \t[$s, \\{$x, $y, $z, $z\\}], "
4694*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
4695*9880d681SAndroid Build Coastguard Worker              []>;
4696*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B32_CLAMP
4697*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4698*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4699*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g),
4700*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b32.clamp \t[$s, \\{$x, $y, $z, $z\\}], "
4701*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
4702*9880d681SAndroid Build Coastguard Worker              []>;
4703*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B64_CLAMP
4704*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4705*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4706*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r, Int64Regs:$g),
4707*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b64.clamp \t[$s, \\{$x, $y, $z, $z\\}], "
4708*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
4709*9880d681SAndroid Build Coastguard Worker              []>;
4710*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B8_CLAMP
4711*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4712*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4713*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4714*9880d681SAndroid Build Coastguard Worker         "sust.b.3d.v4.b8.clamp \t[$s, \\{$x, $y, $z, $z\\}], "
4715*9880d681SAndroid Build Coastguard Worker         "\\{$r, $g, $b, $a\\};",
4716*9880d681SAndroid Build Coastguard Worker              []>;
4717*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B16_CLAMP
4718*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4719*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4720*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4721*9880d681SAndroid Build Coastguard Worker        "sust.b.3d.v4.b16.clamp \t[$s, \\{$x, $y, $z, $z\\}], "
4722*9880d681SAndroid Build Coastguard Worker        "\\{$r, $g, $b, $a\\};",
4723*9880d681SAndroid Build Coastguard Worker              []>;
4724*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B32_CLAMP
4725*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4726*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
4727*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4728*9880d681SAndroid Build Coastguard Worker        "sust.b.3d.v4.b32.clamp \t[$s, \\{$x, $y, $z, $z\\}], "
4729*9880d681SAndroid Build Coastguard Worker        "\\{$r, $g, $b, $a\\};",
4730*9880d681SAndroid Build Coastguard Worker              []>;
4731*9880d681SAndroid Build Coastguard Worker
4732*9880d681SAndroid Build Coastguard Worker
4733*9880d681SAndroid Build Coastguard Worker// .trap variant
4734*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B8_TRAP
4735*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4736*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
4737*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b8.trap \t[$s, \\{$x\\}], \\{$r\\};",
4738*9880d681SAndroid Build Coastguard Worker              []>;
4739*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B16_TRAP
4740*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4741*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
4742*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b16.trap \t[$s, \\{$x\\}], \\{$r\\};",
4743*9880d681SAndroid Build Coastguard Worker              []>;
4744*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B32_TRAP
4745*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4746*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r),
4747*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b32.trap \t[$s, \\{$x\\}], \\{$r\\};",
4748*9880d681SAndroid Build Coastguard Worker              []>;
4749*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B64_TRAP
4750*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4751*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int64Regs:$r),
4752*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b64.trap \t[$s, \\{$x\\}], \\{$r\\};",
4753*9880d681SAndroid Build Coastguard Worker              []>;
4754*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B8_TRAP
4755*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4756*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
4757*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b8.trap \t[$s, \\{$x\\}], \\{$r, $g\\};",
4758*9880d681SAndroid Build Coastguard Worker              []>;
4759*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B16_TRAP
4760*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4761*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
4762*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b16.trap \t[$s, \\{$x\\}], \\{$r, $g\\};",
4763*9880d681SAndroid Build Coastguard Worker              []>;
4764*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B32_TRAP
4765*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4766*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
4767*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b32.trap \t[$s, \\{$x\\}], \\{$r, $g\\};",
4768*9880d681SAndroid Build Coastguard Worker              []>;
4769*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B64_TRAP
4770*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4771*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
4772*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b64.trap \t[$s, \\{$x\\}], \\{$r, $g\\};",
4773*9880d681SAndroid Build Coastguard Worker              []>;
4774*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B8_TRAP
4775*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4776*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g,
4777*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$b, Int16Regs:$a),
4778*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b8.trap \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
4779*9880d681SAndroid Build Coastguard Worker              []>;
4780*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B16_TRAP
4781*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4782*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g,
4783*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$b, Int16Regs:$a),
4784*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b16.trap \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
4785*9880d681SAndroid Build Coastguard Worker              []>;
4786*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B32_TRAP
4787*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4788*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g,
4789*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$b, Int32Regs:$a),
4790*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b32.trap \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
4791*9880d681SAndroid Build Coastguard Worker              []>;
4792*9880d681SAndroid Build Coastguard Worker
4793*9880d681SAndroid Build Coastguard Worker
4794*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B8_TRAP
4795*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4796*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r),
4797*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b8.trap \t[$s, \\{$idx, $x\\}], \\{$r\\};",
4798*9880d681SAndroid Build Coastguard Worker              []>;
4799*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B16_TRAP
4800*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4801*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r),
4802*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b16.trap \t[$s, \\{$idx, $x\\}], \\{$r\\};",
4803*9880d681SAndroid Build Coastguard Worker              []>;
4804*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B32_TRAP
4805*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4806*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r),
4807*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b32.trap \t[$s, \\{$idx, $x\\}], \\{$r\\};",
4808*9880d681SAndroid Build Coastguard Worker              []>;
4809*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B64_TRAP
4810*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4811*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int64Regs:$r),
4812*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b64.trap \t[$s, \\{$idx, $x\\}], \\{$r\\};",
4813*9880d681SAndroid Build Coastguard Worker              []>;
4814*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B8_TRAP
4815*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4816*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
4817*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
4818*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b8.trap \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
4819*9880d681SAndroid Build Coastguard Worker              []>;
4820*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B16_TRAP
4821*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4822*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
4823*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
4824*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b16.trap \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
4825*9880d681SAndroid Build Coastguard Worker              []>;
4826*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B32_TRAP
4827*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4828*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r,
4829*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g),
4830*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b32.trap \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
4831*9880d681SAndroid Build Coastguard Worker              []>;
4832*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B64_TRAP
4833*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4834*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int64Regs:$r,
4835*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$g),
4836*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b64.trap \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
4837*9880d681SAndroid Build Coastguard Worker              []>;
4838*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B8_TRAP
4839*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4840*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
4841*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4842*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v4.b8.trap \t[$s, \\{$idx, $x\\}], "
4843*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g, $b, $a\\};",
4844*9880d681SAndroid Build Coastguard Worker              []>;
4845*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B16_TRAP
4846*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4847*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
4848*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4849*9880d681SAndroid Build Coastguard Worker             "sust.b.a1d.v4.b16.trap \t[$s, \\{$idx, $x\\}], "
4850*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
4851*9880d681SAndroid Build Coastguard Worker              []>;
4852*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B32_TRAP
4853*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4854*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r,
4855*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4856*9880d681SAndroid Build Coastguard Worker             "sust.b.a1d.v4.b32.trap \t[$s, \\{$idx, $x\\}], "
4857*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
4858*9880d681SAndroid Build Coastguard Worker              []>;
4859*9880d681SAndroid Build Coastguard Worker
4860*9880d681SAndroid Build Coastguard Worker
4861*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B8_TRAP
4862*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4863*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
4864*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b8.trap \t[$s, \\{$x, $y\\}], \\{$r\\};",
4865*9880d681SAndroid Build Coastguard Worker              []>;
4866*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B16_TRAP
4867*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4868*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
4869*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b16.trap \t[$s, \\{$x, $y\\}], \\{$r\\};",
4870*9880d681SAndroid Build Coastguard Worker              []>;
4871*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B32_TRAP
4872*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4873*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
4874*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b32.trap \t[$s, \\{$x, $y\\}], \\{$r\\};",
4875*9880d681SAndroid Build Coastguard Worker              []>;
4876*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B64_TRAP
4877*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4878*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
4879*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b64.trap \t[$s, \\{$x, $y\\}], \\{$r\\};",
4880*9880d681SAndroid Build Coastguard Worker              []>;
4881*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B8_TRAP
4882*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4883*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
4884*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
4885*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b8.trap \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
4886*9880d681SAndroid Build Coastguard Worker              []>;
4887*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B16_TRAP
4888*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4889*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
4890*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
4891*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b16.trap \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
4892*9880d681SAndroid Build Coastguard Worker              []>;
4893*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B32_TRAP
4894*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4895*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
4896*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g),
4897*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b32.trap \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
4898*9880d681SAndroid Build Coastguard Worker              []>;
4899*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B64_TRAP
4900*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4901*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r,
4902*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$g),
4903*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b64.trap \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
4904*9880d681SAndroid Build Coastguard Worker              []>;
4905*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B8_TRAP
4906*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4907*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
4908*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4909*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v4.b8.trap \t[$s, \\{$x, $y\\}], "
4910*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g, $b, $a\\};",
4911*9880d681SAndroid Build Coastguard Worker              []>;
4912*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B16_TRAP
4913*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4914*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
4915*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4916*9880d681SAndroid Build Coastguard Worker             "sust.b.2d.v4.b16.trap \t[$s, \\{$x, $y\\}], "
4917*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
4918*9880d681SAndroid Build Coastguard Worker              []>;
4919*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B32_TRAP
4920*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4921*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
4922*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4923*9880d681SAndroid Build Coastguard Worker             "sust.b.2d.v4.b32.trap \t[$s, \\{$x, $y\\}], "
4924*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
4925*9880d681SAndroid Build Coastguard Worker              []>;
4926*9880d681SAndroid Build Coastguard Worker
4927*9880d681SAndroid Build Coastguard Worker
4928*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B8_TRAP
4929*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4930*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4931*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
4932*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b8.trap \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
4933*9880d681SAndroid Build Coastguard Worker              []>;
4934*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B16_TRAP
4935*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4936*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4937*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
4938*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b16.trap \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
4939*9880d681SAndroid Build Coastguard Worker              []>;
4940*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B32_TRAP
4941*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4942*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4943*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r),
4944*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b32.trap \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
4945*9880d681SAndroid Build Coastguard Worker              []>;
4946*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B64_TRAP
4947*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4948*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4949*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r),
4950*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b64.trap \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
4951*9880d681SAndroid Build Coastguard Worker              []>;
4952*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B8_TRAP
4953*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4954*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4955*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
4956*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.v2.b8.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
4957*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
4958*9880d681SAndroid Build Coastguard Worker              []>;
4959*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B16_TRAP
4960*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4961*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4962*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
4963*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b16.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
4964*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
4965*9880d681SAndroid Build Coastguard Worker              []>;
4966*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B32_TRAP
4967*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4968*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4969*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g),
4970*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b32.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
4971*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
4972*9880d681SAndroid Build Coastguard Worker              []>;
4973*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B64_TRAP
4974*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4975*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4976*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r, Int64Regs:$g),
4977*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b64.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
4978*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
4979*9880d681SAndroid Build Coastguard Worker              []>;
4980*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B8_TRAP
4981*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4982*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4983*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4984*9880d681SAndroid Build Coastguard Worker      "sust.b.a2d.v4.b8.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
4985*9880d681SAndroid Build Coastguard Worker      "\\{$r, $g, $b, $a\\};",
4986*9880d681SAndroid Build Coastguard Worker              []>;
4987*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B16_TRAP
4988*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4989*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4990*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
4991*9880d681SAndroid Build Coastguard Worker     "sust.b.a2d.v4.b16.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
4992*9880d681SAndroid Build Coastguard Worker     "\\{$r, $g, $b, $a\\};",
4993*9880d681SAndroid Build Coastguard Worker              []>;
4994*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B32_TRAP
4995*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
4996*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
4997*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
4998*9880d681SAndroid Build Coastguard Worker     "sust.b.a2d.v4.b32.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
4999*9880d681SAndroid Build Coastguard Worker     "\\{$r, $g, $b, $a\\};",
5000*9880d681SAndroid Build Coastguard Worker              []>;
5001*9880d681SAndroid Build Coastguard Worker
5002*9880d681SAndroid Build Coastguard Worker
5003*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B8_TRAP
5004*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5005*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5006*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5007*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b8.trap \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5008*9880d681SAndroid Build Coastguard Worker              []>;
5009*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B16_TRAP
5010*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5011*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5012*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5013*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b16.trap \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5014*9880d681SAndroid Build Coastguard Worker              []>;
5015*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B32_TRAP
5016*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5017*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5018*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r),
5019*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b32.trap \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5020*9880d681SAndroid Build Coastguard Worker              []>;
5021*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B64_TRAP
5022*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5023*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5024*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r),
5025*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b64.trap \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5026*9880d681SAndroid Build Coastguard Worker              []>;
5027*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B8_TRAP
5028*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5029*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5030*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5031*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b8.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5032*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5033*9880d681SAndroid Build Coastguard Worker              []>;
5034*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B16_TRAP
5035*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5036*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5037*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5038*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b16.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5039*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5040*9880d681SAndroid Build Coastguard Worker              []>;
5041*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B32_TRAP
5042*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5043*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5044*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g),
5045*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b32.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5046*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5047*9880d681SAndroid Build Coastguard Worker              []>;
5048*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B64_TRAP
5049*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5050*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5051*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r, Int64Regs:$g),
5052*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b64.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5053*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5054*9880d681SAndroid Build Coastguard Worker              []>;
5055*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B8_TRAP
5056*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5057*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5058*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5059*9880d681SAndroid Build Coastguard Worker         "sust.b.3d.v4.b8.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5060*9880d681SAndroid Build Coastguard Worker         "\\{$r, $g, $b, $a\\};",
5061*9880d681SAndroid Build Coastguard Worker              []>;
5062*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B16_TRAP
5063*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5064*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5065*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5066*9880d681SAndroid Build Coastguard Worker        "sust.b.3d.v4.b16.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5067*9880d681SAndroid Build Coastguard Worker        "\\{$r, $g, $b, $a\\};",
5068*9880d681SAndroid Build Coastguard Worker              []>;
5069*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B32_TRAP
5070*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5071*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5072*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5073*9880d681SAndroid Build Coastguard Worker        "sust.b.3d.v4.b32.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5074*9880d681SAndroid Build Coastguard Worker        "\\{$r, $g, $b, $a\\};",
5075*9880d681SAndroid Build Coastguard Worker              []>;
5076*9880d681SAndroid Build Coastguard Worker
5077*9880d681SAndroid Build Coastguard Worker
5078*9880d681SAndroid Build Coastguard Worker// .zero variant
5079*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B8_ZERO
5080*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5081*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
5082*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b8.zero \t[$s, \\{$x\\}], \\{$r\\};",
5083*9880d681SAndroid Build Coastguard Worker              []>;
5084*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B16_ZERO
5085*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5086*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
5087*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b16.zero \t[$s, \\{$x\\}], \\{$r\\};",
5088*9880d681SAndroid Build Coastguard Worker              []>;
5089*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B32_ZERO
5090*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5091*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r),
5092*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b32.zero \t[$s, \\{$x\\}], \\{$r\\};",
5093*9880d681SAndroid Build Coastguard Worker              []>;
5094*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_B64_ZERO
5095*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5096*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int64Regs:$r),
5097*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.b64.zero \t[$s, \\{$x\\}], \\{$r\\};",
5098*9880d681SAndroid Build Coastguard Worker              []>;
5099*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B8_ZERO
5100*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5101*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
5102*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b8.zero \t[$s, \\{$x\\}], \\{$r, $g\\};",
5103*9880d681SAndroid Build Coastguard Worker              []>;
5104*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B16_ZERO
5105*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5106*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
5107*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b16.zero \t[$s, \\{$x\\}], \\{$r, $g\\};",
5108*9880d681SAndroid Build Coastguard Worker              []>;
5109*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B32_ZERO
5110*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5111*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
5112*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b32.zero \t[$s, \\{$x\\}], \\{$r, $g\\};",
5113*9880d681SAndroid Build Coastguard Worker              []>;
5114*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V2B64_ZERO
5115*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5116*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
5117*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v2.b64.zero \t[$s, \\{$x\\}], \\{$r, $g\\};",
5118*9880d681SAndroid Build Coastguard Worker              []>;
5119*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B8_ZERO
5120*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5121*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g,
5122*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$b, Int16Regs:$a),
5123*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b8.zero \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
5124*9880d681SAndroid Build Coastguard Worker              []>;
5125*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B16_ZERO
5126*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5127*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g,
5128*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$b, Int16Regs:$a),
5129*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b16.zero \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
5130*9880d681SAndroid Build Coastguard Worker              []>;
5131*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_V4B32_ZERO
5132*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5133*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g,
5134*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$b, Int32Regs:$a),
5135*9880d681SAndroid Build Coastguard Worker              "sust.b.1d.v4.b32.zero \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
5136*9880d681SAndroid Build Coastguard Worker              []>;
5137*9880d681SAndroid Build Coastguard Worker
5138*9880d681SAndroid Build Coastguard Worker
5139*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B8_ZERO
5140*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5141*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r),
5142*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b8.zero \t[$s, \\{$idx, $x\\}], \\{$r\\};",
5143*9880d681SAndroid Build Coastguard Worker              []>;
5144*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B16_ZERO
5145*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5146*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r),
5147*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b16.zero \t[$s, \\{$idx, $x\\}], \\{$r\\};",
5148*9880d681SAndroid Build Coastguard Worker              []>;
5149*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B32_ZERO
5150*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5151*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r),
5152*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b32.zero \t[$s, \\{$idx, $x\\}], \\{$r\\};",
5153*9880d681SAndroid Build Coastguard Worker              []>;
5154*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_B64_ZERO
5155*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5156*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int64Regs:$r),
5157*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.b64.zero \t[$s, \\{$idx, $x\\}], \\{$r\\};",
5158*9880d681SAndroid Build Coastguard Worker              []>;
5159*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B8_ZERO
5160*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5161*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
5162*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
5163*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b8.zero \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
5164*9880d681SAndroid Build Coastguard Worker              []>;
5165*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B16_ZERO
5166*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5167*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
5168*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
5169*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b16.zero \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
5170*9880d681SAndroid Build Coastguard Worker              []>;
5171*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B32_ZERO
5172*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5173*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r,
5174*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g),
5175*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b32.zero \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
5176*9880d681SAndroid Build Coastguard Worker              []>;
5177*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V2B64_ZERO
5178*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5179*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int64Regs:$r,
5180*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$g),
5181*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v2.b64.zero \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
5182*9880d681SAndroid Build Coastguard Worker              []>;
5183*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B8_ZERO
5184*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5185*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
5186*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5187*9880d681SAndroid Build Coastguard Worker              "sust.b.a1d.v4.b8.zero \t[$s, \\{$idx, $x\\}], "
5188*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g, $b, $a\\};",
5189*9880d681SAndroid Build Coastguard Worker              []>;
5190*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B16_ZERO
5191*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5192*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
5193*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5194*9880d681SAndroid Build Coastguard Worker             "sust.b.a1d.v4.b16.zero \t[$s, \\{$idx, $x\\}], "
5195*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
5196*9880d681SAndroid Build Coastguard Worker              []>;
5197*9880d681SAndroid Build Coastguard Workerdef SUST_B_1D_ARRAY_V4B32_ZERO
5198*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5199*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r,
5200*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5201*9880d681SAndroid Build Coastguard Worker             "sust.b.a1d.v4.b32.zero \t[$s, \\{$idx, $x\\}], "
5202*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
5203*9880d681SAndroid Build Coastguard Worker              []>;
5204*9880d681SAndroid Build Coastguard Worker
5205*9880d681SAndroid Build Coastguard Worker
5206*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B8_ZERO
5207*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5208*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
5209*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b8.zero \t[$s, \\{$x, $y\\}], \\{$r\\};",
5210*9880d681SAndroid Build Coastguard Worker              []>;
5211*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B16_ZERO
5212*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5213*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
5214*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b16.zero \t[$s, \\{$x, $y\\}], \\{$r\\};",
5215*9880d681SAndroid Build Coastguard Worker              []>;
5216*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B32_ZERO
5217*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5218*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
5219*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b32.zero \t[$s, \\{$x, $y\\}], \\{$r\\};",
5220*9880d681SAndroid Build Coastguard Worker              []>;
5221*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_B64_ZERO
5222*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5223*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
5224*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.b64.zero \t[$s, \\{$x, $y\\}], \\{$r\\};",
5225*9880d681SAndroid Build Coastguard Worker              []>;
5226*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B8_ZERO
5227*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5228*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
5229*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
5230*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b8.zero \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
5231*9880d681SAndroid Build Coastguard Worker              []>;
5232*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B16_ZERO
5233*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5234*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
5235*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
5236*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b16.zero \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
5237*9880d681SAndroid Build Coastguard Worker              []>;
5238*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B32_ZERO
5239*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5240*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
5241*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g),
5242*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b32.zero \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
5243*9880d681SAndroid Build Coastguard Worker              []>;
5244*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V2B64_ZERO
5245*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5246*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r,
5247*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$g),
5248*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v2.b64.zero \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
5249*9880d681SAndroid Build Coastguard Worker              []>;
5250*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B8_ZERO
5251*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5252*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
5253*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5254*9880d681SAndroid Build Coastguard Worker              "sust.b.2d.v4.b8.zero \t[$s, \\{$x, $y\\}], "
5255*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g, $b, $a\\};",
5256*9880d681SAndroid Build Coastguard Worker              []>;
5257*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B16_ZERO
5258*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5259*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
5260*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5261*9880d681SAndroid Build Coastguard Worker             "sust.b.2d.v4.b16.zero \t[$s, \\{$x, $y\\}], "
5262*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
5263*9880d681SAndroid Build Coastguard Worker              []>;
5264*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_V4B32_ZERO
5265*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5266*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
5267*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5268*9880d681SAndroid Build Coastguard Worker             "sust.b.2d.v4.b32.zero \t[$s, \\{$x, $y\\}], "
5269*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
5270*9880d681SAndroid Build Coastguard Worker              []>;
5271*9880d681SAndroid Build Coastguard Worker
5272*9880d681SAndroid Build Coastguard Worker
5273*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B8_ZERO
5274*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5275*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5276*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5277*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b8.zero \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
5278*9880d681SAndroid Build Coastguard Worker              []>;
5279*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B16_ZERO
5280*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5281*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5282*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5283*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b16.zero \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
5284*9880d681SAndroid Build Coastguard Worker              []>;
5285*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B32_ZERO
5286*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5287*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5288*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r),
5289*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b32.zero \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
5290*9880d681SAndroid Build Coastguard Worker              []>;
5291*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_B64_ZERO
5292*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5293*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5294*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r),
5295*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.b64.zero \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
5296*9880d681SAndroid Build Coastguard Worker              []>;
5297*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B8_ZERO
5298*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5299*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5300*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5301*9880d681SAndroid Build Coastguard Worker              "sust.b.a2d.v2.b8.zero \t[$s, \\{$idx, $x, $y, $y\\}], "
5302*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5303*9880d681SAndroid Build Coastguard Worker              []>;
5304*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B16_ZERO
5305*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5306*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5307*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5308*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b16.zero \t[$s, \\{$idx, $x, $y, $y\\}], "
5309*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
5310*9880d681SAndroid Build Coastguard Worker              []>;
5311*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B32_ZERO
5312*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5313*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5314*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g),
5315*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b32.zero \t[$s, \\{$idx, $x, $y, $y\\}], "
5316*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
5317*9880d681SAndroid Build Coastguard Worker              []>;
5318*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V2B64_ZERO
5319*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5320*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5321*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r, Int64Regs:$g),
5322*9880d681SAndroid Build Coastguard Worker             "sust.b.a2d.v2.b64.zero \t[$s, \\{$idx, $x, $y, $y\\}], "
5323*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
5324*9880d681SAndroid Build Coastguard Worker              []>;
5325*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B8_ZERO
5326*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5327*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5328*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5329*9880d681SAndroid Build Coastguard Worker      "sust.b.a2d.v4.b8.zero \t[$s, \\{$idx, $x, $y, $y\\}], "
5330*9880d681SAndroid Build Coastguard Worker      "\\{$r, $g, $b, $a\\};",
5331*9880d681SAndroid Build Coastguard Worker              []>;
5332*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B16_ZERO
5333*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5334*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5335*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5336*9880d681SAndroid Build Coastguard Worker     "sust.b.a2d.v4.b16.zero \t[$s, \\{$idx, $x, $y, $y\\}], "
5337*9880d681SAndroid Build Coastguard Worker     "\\{$r, $g, $b, $a\\};",
5338*9880d681SAndroid Build Coastguard Worker              []>;
5339*9880d681SAndroid Build Coastguard Workerdef SUST_B_2D_ARRAY_V4B32_ZERO
5340*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5341*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5342*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5343*9880d681SAndroid Build Coastguard Worker     "sust.b.a2d.v4.b32.zero \t[$s, \\{$idx, $x, $y, $y\\}], "
5344*9880d681SAndroid Build Coastguard Worker     "\\{$r, $g, $b, $a\\};",
5345*9880d681SAndroid Build Coastguard Worker              []>;
5346*9880d681SAndroid Build Coastguard Worker
5347*9880d681SAndroid Build Coastguard Worker
5348*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B8_ZERO
5349*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5350*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5351*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5352*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b8.zero \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5353*9880d681SAndroid Build Coastguard Worker              []>;
5354*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B16_ZERO
5355*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5356*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5357*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5358*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b16.zero \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5359*9880d681SAndroid Build Coastguard Worker              []>;
5360*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B32_ZERO
5361*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5362*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5363*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r),
5364*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b32.zero \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5365*9880d681SAndroid Build Coastguard Worker              []>;
5366*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_B64_ZERO
5367*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5368*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5369*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r),
5370*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.b64.zero \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5371*9880d681SAndroid Build Coastguard Worker              []>;
5372*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B8_ZERO
5373*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5374*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5375*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5376*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b8.zero \t[$s, \\{$x, $y, $z, $z\\}], "
5377*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5378*9880d681SAndroid Build Coastguard Worker              []>;
5379*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B16_ZERO
5380*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5381*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5382*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5383*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b16.zero \t[$s, \\{$x, $y, $z, $z\\}], "
5384*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5385*9880d681SAndroid Build Coastguard Worker              []>;
5386*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B32_ZERO
5387*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5388*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5389*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g),
5390*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b32.zero \t[$s, \\{$x, $y, $z, $z\\}], "
5391*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5392*9880d681SAndroid Build Coastguard Worker              []>;
5393*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V2B64_ZERO
5394*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5395*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5396*9880d681SAndroid Build Coastguard Worker                   Int64Regs:$r, Int64Regs:$g),
5397*9880d681SAndroid Build Coastguard Worker              "sust.b.3d.v2.b64.zero \t[$s, \\{$x, $y, $z, $z\\}], "
5398*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5399*9880d681SAndroid Build Coastguard Worker              []>;
5400*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B8_ZERO
5401*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5402*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5403*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5404*9880d681SAndroid Build Coastguard Worker         "sust.b.3d.v4.b8.zero \t[$s, \\{$x, $y, $z, $z\\}], "
5405*9880d681SAndroid Build Coastguard Worker         "\\{$r, $g, $b, $a\\};",
5406*9880d681SAndroid Build Coastguard Worker              []>;
5407*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B16_ZERO
5408*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5409*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5410*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5411*9880d681SAndroid Build Coastguard Worker        "sust.b.3d.v4.b16.zero \t[$s, \\{$x, $y, $z, $z\\}], "
5412*9880d681SAndroid Build Coastguard Worker        "\\{$r, $g, $b, $a\\};",
5413*9880d681SAndroid Build Coastguard Worker              []>;
5414*9880d681SAndroid Build Coastguard Workerdef SUST_B_3D_V4B32_ZERO
5415*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5416*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5417*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5418*9880d681SAndroid Build Coastguard Worker        "sust.b.3d.v4.b32.zero \t[$s, \\{$x, $y, $z, $z\\}], "
5419*9880d681SAndroid Build Coastguard Worker        "\\{$r, $g, $b, $a\\};",
5420*9880d681SAndroid Build Coastguard Worker              []>;
5421*9880d681SAndroid Build Coastguard Worker
5422*9880d681SAndroid Build Coastguard Worker
5423*9880d681SAndroid Build Coastguard Worker
5424*9880d681SAndroid Build Coastguard Worker// Formatted
5425*9880d681SAndroid Build Coastguard Worker
5426*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_B8_TRAP
5427*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5428*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
5429*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.b8.trap \t[$s, \\{$x\\}], \\{$r\\};",
5430*9880d681SAndroid Build Coastguard Worker              []>;
5431*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_B16_TRAP
5432*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5433*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
5434*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.b16.trap \t[$s, \\{$x\\}], \\{$r\\};",
5435*9880d681SAndroid Build Coastguard Worker              []>;
5436*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_B32_TRAP
5437*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5438*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r),
5439*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.b32.trap \t[$s, \\{$x\\}], \\{$r\\};",
5440*9880d681SAndroid Build Coastguard Worker              []>;
5441*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_V2B8_TRAP
5442*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5443*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
5444*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.v2.b8.trap \t[$s, \\{$x\\}], \\{$r, $g\\};",
5445*9880d681SAndroid Build Coastguard Worker              []>;
5446*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_V2B16_TRAP
5447*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5448*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
5449*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.v2.b16.trap \t[$s, \\{$x\\}], \\{$r, $g\\};",
5450*9880d681SAndroid Build Coastguard Worker              []>;
5451*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_V2B32_TRAP
5452*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5453*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
5454*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.v2.b32.trap \t[$s, \\{$x\\}], \\{$r, $g\\};",
5455*9880d681SAndroid Build Coastguard Worker              []>;
5456*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_V4B8_TRAP
5457*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5458*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g,
5459*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$b, Int16Regs:$a),
5460*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.v4.b8.trap \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
5461*9880d681SAndroid Build Coastguard Worker              []>;
5462*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_V4B16_TRAP
5463*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5464*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g,
5465*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$b, Int16Regs:$a),
5466*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.v4.b16.trap \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
5467*9880d681SAndroid Build Coastguard Worker              []>;
5468*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_V4B32_TRAP
5469*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5470*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g,
5471*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$b, Int32Regs:$a),
5472*9880d681SAndroid Build Coastguard Worker              "sust.p.1d.v4.b32.trap \t[$s, \\{$x\\}], \\{$r, $g, $b, $a\\};",
5473*9880d681SAndroid Build Coastguard Worker              []>;
5474*9880d681SAndroid Build Coastguard Worker
5475*9880d681SAndroid Build Coastguard Worker
5476*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_B8_TRAP
5477*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5478*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r),
5479*9880d681SAndroid Build Coastguard Worker              "sust.p.a1d.b8.trap \t[$s, \\{$idx, $x\\}], \\{$r\\};",
5480*9880d681SAndroid Build Coastguard Worker              []>;
5481*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_B16_TRAP
5482*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5483*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r),
5484*9880d681SAndroid Build Coastguard Worker              "sust.p.a1d.b16.trap \t[$s, \\{$idx, $x\\}], \\{$r\\};",
5485*9880d681SAndroid Build Coastguard Worker              []>;
5486*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_B32_TRAP
5487*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5488*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r),
5489*9880d681SAndroid Build Coastguard Worker              "sust.p.a1d.b32.trap \t[$s, \\{$idx, $x\\}], \\{$r\\};",
5490*9880d681SAndroid Build Coastguard Worker              []>;
5491*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_V2B8_TRAP
5492*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5493*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
5494*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
5495*9880d681SAndroid Build Coastguard Worker              "sust.p.a1d.v2.b8.trap \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
5496*9880d681SAndroid Build Coastguard Worker              []>;
5497*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_V2B16_TRAP
5498*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5499*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
5500*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
5501*9880d681SAndroid Build Coastguard Worker              "sust.p.a1d.v2.b16.trap \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
5502*9880d681SAndroid Build Coastguard Worker              []>;
5503*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_V2B32_TRAP
5504*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5505*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r,
5506*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g),
5507*9880d681SAndroid Build Coastguard Worker              "sust.p.a1d.v2.b32.trap \t[$s, \\{$idx, $x\\}], \\{$r, $g\\};",
5508*9880d681SAndroid Build Coastguard Worker              []>;
5509*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_V4B8_TRAP
5510*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5511*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
5512*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5513*9880d681SAndroid Build Coastguard Worker              "sust.p.a1d.v4.b8.trap \t[$s, \\{$idx, $x\\}], "
5514*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g, $b, $a\\};",
5515*9880d681SAndroid Build Coastguard Worker              []>;
5516*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_V4B16_TRAP
5517*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5518*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int16Regs:$r,
5519*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5520*9880d681SAndroid Build Coastguard Worker             "sust.p.a1d.v4.b16.trap \t[$s, \\{$idx, $x\\}], "
5521*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
5522*9880d681SAndroid Build Coastguard Worker              []>;
5523*9880d681SAndroid Build Coastguard Workerdef SUST_P_1D_ARRAY_V4B32_TRAP
5524*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5525*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$r,
5526*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5527*9880d681SAndroid Build Coastguard Worker             "sust.p.a1d.v4.b32.trap \t[$s, \\{$idx, $x\\}], "
5528*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
5529*9880d681SAndroid Build Coastguard Worker              []>;
5530*9880d681SAndroid Build Coastguard Worker
5531*9880d681SAndroid Build Coastguard Worker
5532*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_B8_TRAP
5533*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5534*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
5535*9880d681SAndroid Build Coastguard Worker              "sust.p.2d.b8.trap \t[$s, \\{$x, $y\\}], \\{$r\\};",
5536*9880d681SAndroid Build Coastguard Worker              []>;
5537*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_B16_TRAP
5538*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5539*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
5540*9880d681SAndroid Build Coastguard Worker              "sust.p.2d.b16.trap \t[$s, \\{$x, $y\\}], \\{$r\\};",
5541*9880d681SAndroid Build Coastguard Worker              []>;
5542*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_B32_TRAP
5543*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5544*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
5545*9880d681SAndroid Build Coastguard Worker              "sust.p.2d.b32.trap \t[$s, \\{$x, $y\\}], \\{$r\\};",
5546*9880d681SAndroid Build Coastguard Worker              []>;
5547*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_V2B8_TRAP
5548*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5549*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
5550*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
5551*9880d681SAndroid Build Coastguard Worker              "sust.p.2d.v2.b8.trap \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
5552*9880d681SAndroid Build Coastguard Worker              []>;
5553*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_V2B16_TRAP
5554*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5555*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
5556*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g),
5557*9880d681SAndroid Build Coastguard Worker              "sust.p.2d.v2.b16.trap \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
5558*9880d681SAndroid Build Coastguard Worker              []>;
5559*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_V2B32_TRAP
5560*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5561*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
5562*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g),
5563*9880d681SAndroid Build Coastguard Worker              "sust.p.2d.v2.b32.trap \t[$s, \\{$x, $y\\}], \\{$r, $g\\};",
5564*9880d681SAndroid Build Coastguard Worker              []>;
5565*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_V4B8_TRAP
5566*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5567*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
5568*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5569*9880d681SAndroid Build Coastguard Worker              "sust.p.2d.v4.b8.trap \t[$s, \\{$x, $y\\}], "
5570*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g, $b, $a\\};",
5571*9880d681SAndroid Build Coastguard Worker              []>;
5572*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_V4B16_TRAP
5573*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5574*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r,
5575*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5576*9880d681SAndroid Build Coastguard Worker             "sust.p.2d.v4.b16.trap \t[$s, \\{$x, $y\\}], "
5577*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
5578*9880d681SAndroid Build Coastguard Worker              []>;
5579*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_V4B32_TRAP
5580*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5581*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
5582*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5583*9880d681SAndroid Build Coastguard Worker             "sust.p.2d.v4.b32.trap \t[$s, \\{$x, $y\\}], "
5584*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g, $b, $a\\};",
5585*9880d681SAndroid Build Coastguard Worker              []>;
5586*9880d681SAndroid Build Coastguard Worker
5587*9880d681SAndroid Build Coastguard Worker
5588*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_B8_TRAP
5589*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5590*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5591*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5592*9880d681SAndroid Build Coastguard Worker              "sust.p.a2d.b8.trap \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
5593*9880d681SAndroid Build Coastguard Worker              []>;
5594*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_B16_TRAP
5595*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5596*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5597*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5598*9880d681SAndroid Build Coastguard Worker              "sust.p.a2d.b16.trap \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
5599*9880d681SAndroid Build Coastguard Worker              []>;
5600*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_B32_TRAP
5601*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5602*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5603*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r),
5604*9880d681SAndroid Build Coastguard Worker              "sust.p.a2d.b32.trap \t[$s, \\{$idx, $x, $y, $y\\}], \\{$r\\};",
5605*9880d681SAndroid Build Coastguard Worker              []>;
5606*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_V2B8_TRAP
5607*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5608*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5609*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5610*9880d681SAndroid Build Coastguard Worker              "sust.p.a2d.v2.b8.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
5611*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5612*9880d681SAndroid Build Coastguard Worker              []>;
5613*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_V2B16_TRAP
5614*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5615*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5616*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5617*9880d681SAndroid Build Coastguard Worker             "sust.p.a2d.v2.b16.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
5618*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
5619*9880d681SAndroid Build Coastguard Worker              []>;
5620*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_V2B32_TRAP
5621*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5622*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5623*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g),
5624*9880d681SAndroid Build Coastguard Worker             "sust.p.a2d.v2.b32.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
5625*9880d681SAndroid Build Coastguard Worker             "\\{$r, $g\\};",
5626*9880d681SAndroid Build Coastguard Worker              []>;
5627*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_V4B8_TRAP
5628*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5629*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5630*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5631*9880d681SAndroid Build Coastguard Worker      "sust.p.a2d.v4.b8.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
5632*9880d681SAndroid Build Coastguard Worker      "\\{$r, $g, $b, $a\\};",
5633*9880d681SAndroid Build Coastguard Worker              []>;
5634*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_V4B16_TRAP
5635*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5636*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5637*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5638*9880d681SAndroid Build Coastguard Worker     "sust.p.a2d.v4.b16.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
5639*9880d681SAndroid Build Coastguard Worker     "\\{$r, $g, $b, $a\\};",
5640*9880d681SAndroid Build Coastguard Worker              []>;
5641*9880d681SAndroid Build Coastguard Workerdef SUST_P_2D_ARRAY_V4B32_TRAP
5642*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5643*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$idx, Int32Regs:$x, Int32Regs:$y,
5644*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5645*9880d681SAndroid Build Coastguard Worker     "sust.p.a2d.v4.b32.trap \t[$s, \\{$idx, $x, $y, $y\\}], "
5646*9880d681SAndroid Build Coastguard Worker     "\\{$r, $g, $b, $a\\};",
5647*9880d681SAndroid Build Coastguard Worker              []>;
5648*9880d681SAndroid Build Coastguard Worker
5649*9880d681SAndroid Build Coastguard Worker
5650*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_B8_TRAP
5651*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5652*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5653*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5654*9880d681SAndroid Build Coastguard Worker              "sust.p.3d.b8.trap \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5655*9880d681SAndroid Build Coastguard Worker              []>;
5656*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_B16_TRAP
5657*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5658*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5659*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r),
5660*9880d681SAndroid Build Coastguard Worker              "sust.p.3d.b16.trap \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5661*9880d681SAndroid Build Coastguard Worker              []>;
5662*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_B32_TRAP
5663*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5664*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5665*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r),
5666*9880d681SAndroid Build Coastguard Worker              "sust.p.3d.b32.trap \t[$s, \\{$x, $y, $z, $z\\}], \\{$r\\};",
5667*9880d681SAndroid Build Coastguard Worker              []>;
5668*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_V2B8_TRAP
5669*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5670*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5671*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5672*9880d681SAndroid Build Coastguard Worker              "sust.p.3d.v2.b8.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5673*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5674*9880d681SAndroid Build Coastguard Worker              []>;
5675*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_V2B16_TRAP
5676*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5677*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5678*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g),
5679*9880d681SAndroid Build Coastguard Worker              "sust.p.3d.v2.b16.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5680*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5681*9880d681SAndroid Build Coastguard Worker              []>;
5682*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_V2B32_TRAP
5683*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5684*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5685*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g),
5686*9880d681SAndroid Build Coastguard Worker              "sust.p.3d.v2.b32.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5687*9880d681SAndroid Build Coastguard Worker              "\\{$r, $g\\};",
5688*9880d681SAndroid Build Coastguard Worker              []>;
5689*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_V4B8_TRAP
5690*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5691*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5692*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5693*9880d681SAndroid Build Coastguard Worker         "sust.p.3d.v4.b8.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5694*9880d681SAndroid Build Coastguard Worker         "\\{$r, $g, $b, $a\\};",
5695*9880d681SAndroid Build Coastguard Worker              []>;
5696*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_V4B16_TRAP
5697*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5698*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5699*9880d681SAndroid Build Coastguard Worker                   Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5700*9880d681SAndroid Build Coastguard Worker        "sust.p.3d.v4.b16.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5701*9880d681SAndroid Build Coastguard Worker        "\\{$r, $g, $b, $a\\};",
5702*9880d681SAndroid Build Coastguard Worker              []>;
5703*9880d681SAndroid Build Coastguard Workerdef SUST_P_3D_V4B32_TRAP
5704*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs),
5705*9880d681SAndroid Build Coastguard Worker              (ins Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5706*9880d681SAndroid Build Coastguard Worker                   Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5707*9880d681SAndroid Build Coastguard Worker        "sust.p.3d.v4.b32.trap \t[$s, \\{$x, $y, $z, $z\\}], "
5708*9880d681SAndroid Build Coastguard Worker        "\\{$r, $g, $b, $a\\};",
5709*9880d681SAndroid Build Coastguard Worker              []>;
5710*9880d681SAndroid Build Coastguard Worker}
5711*9880d681SAndroid Build Coastguard Worker
5712*9880d681SAndroid Build Coastguard Worker// Surface store instruction patterns
5713*9880d681SAndroid Build Coastguard Worker// I'm not sure why we can't just include these in the instruction definitions,
5714*9880d681SAndroid Build Coastguard Worker// but TableGen complains of type errors :(
5715*9880d681SAndroid Build Coastguard Worker
5716*9880d681SAndroid Build Coastguard Worker// .clamp variant
5717*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i8_clamp
5718*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
5719*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B8_CLAMP Int64Regs:$s, Int32Regs:$x, Int16Regs:$r)>;
5720*9880d681SAndroid Build Coastguard Worker
5721*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i16_clamp
5722*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
5723*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B16_CLAMP Int64Regs:$s, Int32Regs:$x, Int16Regs:$r)>;
5724*9880d681SAndroid Build Coastguard Worker
5725*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i32_clamp
5726*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$r),
5727*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B32_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$r)>;
5728*9880d681SAndroid Build Coastguard Worker
5729*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i64_clamp
5730*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int64Regs:$r),
5731*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B64_CLAMP Int64Regs:$s, Int32Regs:$x, Int64Regs:$r)>;
5732*9880d681SAndroid Build Coastguard Worker
5733*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i8_clamp
5734*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
5735*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B8_CLAMP Int64Regs:$s, Int32Regs:$x,
5736*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
5737*9880d681SAndroid Build Coastguard Worker
5738*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i16_clamp
5739*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
5740*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B16_CLAMP Int64Regs:$s, Int32Regs:$x,
5741*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
5742*9880d681SAndroid Build Coastguard Worker
5743*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i32_clamp
5744*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
5745*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B32_CLAMP Int64Regs:$s, Int32Regs:$x,
5746*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
5747*9880d681SAndroid Build Coastguard Worker
5748*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i64_clamp
5749*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
5750*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B64_CLAMP Int64Regs:$s, Int32Regs:$x,
5751*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
5752*9880d681SAndroid Build Coastguard Worker
5753*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i8_clamp
5754*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
5755*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5756*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B8_CLAMP Int64Regs:$s, Int32Regs:$x,
5757*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
5758*9880d681SAndroid Build Coastguard Worker
5759*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i16_clamp
5760*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
5761*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5762*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B16_CLAMP Int64Regs:$s, Int32Regs:$x,
5763*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
5764*9880d681SAndroid Build Coastguard Worker
5765*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i32_clamp
5766*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
5767*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5768*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B32_CLAMP Int64Regs:$s, Int32Regs:$x,
5769*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
5770*9880d681SAndroid Build Coastguard Worker
5771*9880d681SAndroid Build Coastguard Worker
5772*9880d681SAndroid Build Coastguard Worker
5773*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i8_clamp
5774*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r),
5775*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B8_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5776*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
5777*9880d681SAndroid Build Coastguard Worker
5778*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i16_clamp
5779*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r),
5780*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B16_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5781*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
5782*9880d681SAndroid Build Coastguard Worker
5783*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i32_clamp
5784*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$r),
5785*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B32_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5786*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
5787*9880d681SAndroid Build Coastguard Worker
5788*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i64_clamp
5789*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int64Regs:$r),
5790*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B64_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5791*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
5792*9880d681SAndroid Build Coastguard Worker
5793*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i8_clamp
5794*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
5795*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B8_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5796*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
5797*9880d681SAndroid Build Coastguard Worker
5798*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i16_clamp
5799*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
5800*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B16_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5801*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
5802*9880d681SAndroid Build Coastguard Worker
5803*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i32_clamp
5804*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
5805*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B32_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5806*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
5807*9880d681SAndroid Build Coastguard Worker
5808*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i64_clamp
5809*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
5810*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B64_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5811*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
5812*9880d681SAndroid Build Coastguard Worker
5813*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i8_clamp
5814*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5815*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5816*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B8_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5817*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
5818*9880d681SAndroid Build Coastguard Worker
5819*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i16_clamp
5820*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5821*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5822*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B16_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5823*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
5824*9880d681SAndroid Build Coastguard Worker
5825*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i32_clamp
5826*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5827*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5828*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B32_CLAMP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
5829*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
5830*9880d681SAndroid Build Coastguard Worker
5831*9880d681SAndroid Build Coastguard Worker
5832*9880d681SAndroid Build Coastguard Worker
5833*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i8_clamp
5834*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
5835*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B8_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5836*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
5837*9880d681SAndroid Build Coastguard Worker
5838*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i16_clamp
5839*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
5840*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B16_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5841*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
5842*9880d681SAndroid Build Coastguard Worker
5843*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i32_clamp
5844*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
5845*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B32_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5846*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
5847*9880d681SAndroid Build Coastguard Worker
5848*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i64_clamp
5849*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
5850*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B64_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5851*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
5852*9880d681SAndroid Build Coastguard Worker
5853*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i8_clamp
5854*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r, Int16Regs:$g),
5855*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B8_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5856*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
5857*9880d681SAndroid Build Coastguard Worker
5858*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i16_clamp
5859*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r, Int16Regs:$g),
5860*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B16_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5861*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
5862*9880d681SAndroid Build Coastguard Worker
5863*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i32_clamp
5864*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r, Int32Regs:$g),
5865*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B32_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5866*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
5867*9880d681SAndroid Build Coastguard Worker
5868*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i64_clamp
5869*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r, Int64Regs:$g),
5870*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B64_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5871*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
5872*9880d681SAndroid Build Coastguard Worker
5873*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i8_clamp
5874*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5875*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5876*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B8_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5877*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
5878*9880d681SAndroid Build Coastguard Worker
5879*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i16_clamp
5880*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5881*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5882*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B16_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5883*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
5884*9880d681SAndroid Build Coastguard Worker
5885*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i32_clamp
5886*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5887*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5888*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B32_CLAMP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
5889*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
5890*9880d681SAndroid Build Coastguard Worker
5891*9880d681SAndroid Build Coastguard Worker
5892*9880d681SAndroid Build Coastguard Worker
5893*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i8_clamp
5894*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
5895*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B8_CLAMP Int64Regs:$s,
5896*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5897*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
5898*9880d681SAndroid Build Coastguard Worker
5899*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i16_clamp
5900*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
5901*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B16_CLAMP Int64Regs:$s,
5902*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5903*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
5904*9880d681SAndroid Build Coastguard Worker
5905*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i32_clamp
5906*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
5907*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B32_CLAMP Int64Regs:$s,
5908*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5909*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
5910*9880d681SAndroid Build Coastguard Worker
5911*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i64_clamp
5912*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
5913*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B64_CLAMP Int64Regs:$s,
5914*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5915*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
5916*9880d681SAndroid Build Coastguard Worker
5917*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i8_clamp
5918*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5919*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
5920*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B8_CLAMP Int64Regs:$s, Int32Regs:$l,
5921*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
5922*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
5923*9880d681SAndroid Build Coastguard Worker
5924*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i16_clamp
5925*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5926*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
5927*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B16_CLAMP Int64Regs:$s, Int32Regs:$l,
5928*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
5929*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
5930*9880d681SAndroid Build Coastguard Worker
5931*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i32_clamp
5932*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
5933*9880d681SAndroid Build Coastguard Worker           Int32Regs:$g),
5934*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B32_CLAMP Int64Regs:$s, Int32Regs:$l,
5935*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$r, Int32Regs:$g)>;
5936*9880d681SAndroid Build Coastguard Worker
5937*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i64_clamp
5938*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r,
5939*9880d681SAndroid Build Coastguard Worker           Int64Regs:$g),
5940*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B64_CLAMP Int64Regs:$s, Int32Regs:$l,
5941*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int64Regs:$r, Int64Regs:$g)>;
5942*9880d681SAndroid Build Coastguard Worker
5943*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i8_clamp
5944*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5945*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5946*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B8_CLAMP Int64Regs:$s,
5947*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5948*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
5949*9880d681SAndroid Build Coastguard Worker
5950*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i16_clamp
5951*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5952*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
5953*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B16_CLAMP Int64Regs:$s,
5954*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5955*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
5956*9880d681SAndroid Build Coastguard Worker
5957*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i32_clamp
5958*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
5959*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
5960*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B32_CLAMP Int64Regs:$s, Int32Regs:$l,
5961*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
5962*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
5963*9880d681SAndroid Build Coastguard Worker
5964*9880d681SAndroid Build Coastguard Worker
5965*9880d681SAndroid Build Coastguard Worker
5966*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i8_clamp
5967*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5968*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r),
5969*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B8_CLAMP Int64Regs:$s,
5970*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5971*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
5972*9880d681SAndroid Build Coastguard Worker
5973*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i16_clamp
5974*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5975*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r),
5976*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B16_CLAMP Int64Regs:$s,
5977*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5978*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
5979*9880d681SAndroid Build Coastguard Worker
5980*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i32_clamp
5981*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5982*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r),
5983*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B32_CLAMP Int64Regs:$s,
5984*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5985*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
5986*9880d681SAndroid Build Coastguard Worker
5987*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i64_clamp
5988*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5989*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r),
5990*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B64_CLAMP Int64Regs:$s,
5991*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5992*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
5993*9880d681SAndroid Build Coastguard Worker
5994*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i8_clamp
5995*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5996*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
5997*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B8_CLAMP Int64Regs:$s,
5998*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
5999*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6000*9880d681SAndroid Build Coastguard Worker
6001*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i16_clamp
6002*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6003*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6004*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B16_CLAMP Int64Regs:$s,
6005*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6006*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6007*9880d681SAndroid Build Coastguard Worker
6008*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i32_clamp
6009*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6010*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g),
6011*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B32_CLAMP Int64Regs:$s,
6012*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6013*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6014*9880d681SAndroid Build Coastguard Worker
6015*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i64_clamp
6016*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6017*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g),
6018*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B64_CLAMP Int64Regs:$s,
6019*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6020*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6021*9880d681SAndroid Build Coastguard Worker
6022*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i8_clamp
6023*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6024*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6025*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B8_CLAMP Int64Regs:$s,
6026*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6027*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6028*9880d681SAndroid Build Coastguard Worker
6029*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i16_clamp
6030*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6031*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6032*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B16_CLAMP Int64Regs:$s,
6033*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6034*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6035*9880d681SAndroid Build Coastguard Worker
6036*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i32_clamp
6037*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6038*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6039*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B32_CLAMP Int64Regs:$s,
6040*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6041*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6042*9880d681SAndroid Build Coastguard Worker
6043*9880d681SAndroid Build Coastguard Worker
6044*9880d681SAndroid Build Coastguard Worker// .trap variant
6045*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i8_trap
6046*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
6047*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B8_TRAP Int64Regs:$s, Int32Regs:$x, Int16Regs:$r)>;
6048*9880d681SAndroid Build Coastguard Worker
6049*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i16_trap
6050*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
6051*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B16_TRAP Int64Regs:$s, Int32Regs:$x, Int16Regs:$r)>;
6052*9880d681SAndroid Build Coastguard Worker
6053*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i32_trap
6054*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$r),
6055*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B32_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$r)>;
6056*9880d681SAndroid Build Coastguard Worker
6057*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i64_trap
6058*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int64Regs:$r),
6059*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B64_TRAP Int64Regs:$s, Int32Regs:$x, Int64Regs:$r)>;
6060*9880d681SAndroid Build Coastguard Worker
6061*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i8_trap
6062*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6063*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B8_TRAP Int64Regs:$s, Int32Regs:$x,
6064*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6065*9880d681SAndroid Build Coastguard Worker
6066*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i16_trap
6067*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6068*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B16_TRAP Int64Regs:$s, Int32Regs:$x,
6069*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6070*9880d681SAndroid Build Coastguard Worker
6071*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i32_trap
6072*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
6073*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B32_TRAP Int64Regs:$s, Int32Regs:$x,
6074*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6075*9880d681SAndroid Build Coastguard Worker
6076*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i64_trap
6077*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
6078*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B64_TRAP Int64Regs:$s, Int32Regs:$x,
6079*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6080*9880d681SAndroid Build Coastguard Worker
6081*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i8_trap
6082*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6083*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6084*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B8_TRAP Int64Regs:$s, Int32Regs:$x,
6085*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6086*9880d681SAndroid Build Coastguard Worker
6087*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i16_trap
6088*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6089*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6090*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B16_TRAP Int64Regs:$s, Int32Regs:$x,
6091*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6092*9880d681SAndroid Build Coastguard Worker
6093*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i32_trap
6094*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6095*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6096*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B32_TRAP Int64Regs:$s, Int32Regs:$x,
6097*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6098*9880d681SAndroid Build Coastguard Worker
6099*9880d681SAndroid Build Coastguard Worker
6100*9880d681SAndroid Build Coastguard Worker
6101*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i8_trap
6102*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r),
6103*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B8_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6104*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6105*9880d681SAndroid Build Coastguard Worker
6106*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i16_trap
6107*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r),
6108*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B16_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6109*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6110*9880d681SAndroid Build Coastguard Worker
6111*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i32_trap
6112*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$r),
6113*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B32_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6114*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6115*9880d681SAndroid Build Coastguard Worker
6116*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i64_trap
6117*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int64Regs:$r),
6118*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B64_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6119*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
6120*9880d681SAndroid Build Coastguard Worker
6121*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i8_trap
6122*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6123*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B8_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6124*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6125*9880d681SAndroid Build Coastguard Worker
6126*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i16_trap
6127*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6128*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B16_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6129*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6130*9880d681SAndroid Build Coastguard Worker
6131*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i32_trap
6132*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
6133*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B32_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6134*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6135*9880d681SAndroid Build Coastguard Worker
6136*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i64_trap
6137*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
6138*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B64_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6139*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6140*9880d681SAndroid Build Coastguard Worker
6141*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i8_trap
6142*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6143*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6144*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B8_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6145*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6146*9880d681SAndroid Build Coastguard Worker
6147*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i16_trap
6148*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6149*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6150*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B16_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6151*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6152*9880d681SAndroid Build Coastguard Worker
6153*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i32_trap
6154*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6155*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6156*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B32_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6157*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6158*9880d681SAndroid Build Coastguard Worker
6159*9880d681SAndroid Build Coastguard Worker
6160*9880d681SAndroid Build Coastguard Worker
6161*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i8_trap
6162*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6163*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B8_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6164*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6165*9880d681SAndroid Build Coastguard Worker
6166*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i16_trap
6167*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6168*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B16_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6169*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6170*9880d681SAndroid Build Coastguard Worker
6171*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i32_trap
6172*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
6173*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B32_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6174*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6175*9880d681SAndroid Build Coastguard Worker
6176*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i64_trap
6177*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
6178*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B64_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6179*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
6180*9880d681SAndroid Build Coastguard Worker
6181*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i8_trap
6182*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r, Int16Regs:$g),
6183*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B8_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6184*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6185*9880d681SAndroid Build Coastguard Worker
6186*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i16_trap
6187*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r, Int16Regs:$g),
6188*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B16_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6189*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6190*9880d681SAndroid Build Coastguard Worker
6191*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i32_trap
6192*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r, Int32Regs:$g),
6193*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B32_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6194*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6195*9880d681SAndroid Build Coastguard Worker
6196*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i64_trap
6197*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r, Int64Regs:$g),
6198*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B64_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6199*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6200*9880d681SAndroid Build Coastguard Worker
6201*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i8_trap
6202*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6203*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6204*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B8_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6205*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6206*9880d681SAndroid Build Coastguard Worker
6207*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i16_trap
6208*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6209*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6210*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B16_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6211*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6212*9880d681SAndroid Build Coastguard Worker
6213*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i32_trap
6214*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6215*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6216*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B32_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6217*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6218*9880d681SAndroid Build Coastguard Worker
6219*9880d681SAndroid Build Coastguard Worker
6220*9880d681SAndroid Build Coastguard Worker
6221*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i8_trap
6222*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6223*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B8_TRAP Int64Regs:$s,
6224*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6225*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6226*9880d681SAndroid Build Coastguard Worker
6227*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i16_trap
6228*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6229*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B16_TRAP Int64Regs:$s,
6230*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6231*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6232*9880d681SAndroid Build Coastguard Worker
6233*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i32_trap
6234*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
6235*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B32_TRAP Int64Regs:$s,
6236*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6237*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6238*9880d681SAndroid Build Coastguard Worker
6239*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i64_trap
6240*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
6241*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B64_TRAP Int64Regs:$s,
6242*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6243*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
6244*9880d681SAndroid Build Coastguard Worker
6245*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i8_trap
6246*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6247*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6248*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B8_TRAP Int64Regs:$s, Int32Regs:$l,
6249*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6250*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6251*9880d681SAndroid Build Coastguard Worker
6252*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i16_trap
6253*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6254*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6255*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B16_TRAP Int64Regs:$s, Int32Regs:$l,
6256*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6257*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6258*9880d681SAndroid Build Coastguard Worker
6259*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i32_trap
6260*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
6261*9880d681SAndroid Build Coastguard Worker           Int32Regs:$g),
6262*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B32_TRAP Int64Regs:$s, Int32Regs:$l,
6263*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$r, Int32Regs:$g)>;
6264*9880d681SAndroid Build Coastguard Worker
6265*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i64_trap
6266*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r,
6267*9880d681SAndroid Build Coastguard Worker           Int64Regs:$g),
6268*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B64_TRAP Int64Regs:$s, Int32Regs:$l,
6269*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int64Regs:$r, Int64Regs:$g)>;
6270*9880d681SAndroid Build Coastguard Worker
6271*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i8_trap
6272*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6273*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6274*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B8_TRAP Int64Regs:$s,
6275*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6276*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6277*9880d681SAndroid Build Coastguard Worker
6278*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i16_trap
6279*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6280*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6281*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B16_TRAP Int64Regs:$s,
6282*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6283*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6284*9880d681SAndroid Build Coastguard Worker
6285*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i32_trap
6286*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6287*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6288*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B32_TRAP Int64Regs:$s, Int32Regs:$l,
6289*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6290*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6291*9880d681SAndroid Build Coastguard Worker
6292*9880d681SAndroid Build Coastguard Worker
6293*9880d681SAndroid Build Coastguard Worker
6294*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i8_trap
6295*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6296*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r),
6297*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B8_TRAP Int64Regs:$s,
6298*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6299*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6300*9880d681SAndroid Build Coastguard Worker
6301*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i16_trap
6302*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6303*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r),
6304*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B16_TRAP Int64Regs:$s,
6305*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6306*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6307*9880d681SAndroid Build Coastguard Worker
6308*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i32_trap
6309*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6310*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r),
6311*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B32_TRAP Int64Regs:$s,
6312*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6313*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6314*9880d681SAndroid Build Coastguard Worker
6315*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i64_trap
6316*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6317*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r),
6318*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B64_TRAP Int64Regs:$s,
6319*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6320*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
6321*9880d681SAndroid Build Coastguard Worker
6322*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i8_trap
6323*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6324*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6325*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B8_TRAP Int64Regs:$s,
6326*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6327*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6328*9880d681SAndroid Build Coastguard Worker
6329*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i16_trap
6330*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6331*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6332*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B16_TRAP Int64Regs:$s,
6333*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6334*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6335*9880d681SAndroid Build Coastguard Worker
6336*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i32_trap
6337*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6338*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g),
6339*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B32_TRAP Int64Regs:$s,
6340*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6341*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6342*9880d681SAndroid Build Coastguard Worker
6343*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i64_trap
6344*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6345*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g),
6346*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B64_TRAP Int64Regs:$s,
6347*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6348*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6349*9880d681SAndroid Build Coastguard Worker
6350*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i8_trap
6351*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6352*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6353*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B8_TRAP Int64Regs:$s,
6354*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6355*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6356*9880d681SAndroid Build Coastguard Worker
6357*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i16_trap
6358*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6359*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6360*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B16_TRAP Int64Regs:$s,
6361*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6362*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6363*9880d681SAndroid Build Coastguard Worker
6364*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i32_trap
6365*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6366*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6367*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B32_TRAP Int64Regs:$s,
6368*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6369*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6370*9880d681SAndroid Build Coastguard Worker
6371*9880d681SAndroid Build Coastguard Worker
6372*9880d681SAndroid Build Coastguard Worker// .zero variant
6373*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i8_zero
6374*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
6375*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B8_ZERO Int64Regs:$s, Int32Regs:$x, Int16Regs:$r)>;
6376*9880d681SAndroid Build Coastguard Worker
6377*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i16_zero
6378*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
6379*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B16_ZERO Int64Regs:$s, Int32Regs:$x, Int16Regs:$r)>;
6380*9880d681SAndroid Build Coastguard Worker
6381*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i32_zero
6382*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$r),
6383*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B32_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$r)>;
6384*9880d681SAndroid Build Coastguard Worker
6385*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_i64_zero
6386*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int64Regs:$r),
6387*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_B64_ZERO Int64Regs:$s, Int32Regs:$x, Int64Regs:$r)>;
6388*9880d681SAndroid Build Coastguard Worker
6389*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i8_zero
6390*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6391*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B8_ZERO Int64Regs:$s, Int32Regs:$x,
6392*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6393*9880d681SAndroid Build Coastguard Worker
6394*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i16_zero
6395*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6396*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B16_ZERO Int64Regs:$s, Int32Regs:$x,
6397*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6398*9880d681SAndroid Build Coastguard Worker
6399*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i32_zero
6400*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
6401*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B32_ZERO Int64Regs:$s, Int32Regs:$x,
6402*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6403*9880d681SAndroid Build Coastguard Worker
6404*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v2i64_zero
6405*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
6406*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V2B64_ZERO Int64Regs:$s, Int32Regs:$x,
6407*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6408*9880d681SAndroid Build Coastguard Worker
6409*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i8_zero
6410*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6411*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6412*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B8_ZERO Int64Regs:$s, Int32Regs:$x,
6413*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6414*9880d681SAndroid Build Coastguard Worker
6415*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i16_zero
6416*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6417*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6418*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B16_ZERO Int64Regs:$s, Int32Regs:$x,
6419*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6420*9880d681SAndroid Build Coastguard Worker
6421*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_v4i32_zero
6422*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6423*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6424*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_V4B32_ZERO Int64Regs:$s, Int32Regs:$x,
6425*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6426*9880d681SAndroid Build Coastguard Worker
6427*9880d681SAndroid Build Coastguard Worker
6428*9880d681SAndroid Build Coastguard Worker
6429*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i8_zero
6430*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r),
6431*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B8_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6432*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6433*9880d681SAndroid Build Coastguard Worker
6434*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i16_zero
6435*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r),
6436*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B16_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6437*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6438*9880d681SAndroid Build Coastguard Worker
6439*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i32_zero
6440*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$r),
6441*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B32_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6442*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6443*9880d681SAndroid Build Coastguard Worker
6444*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_i64_zero
6445*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int64Regs:$r),
6446*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_B64_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6447*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
6448*9880d681SAndroid Build Coastguard Worker
6449*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i8_zero
6450*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6451*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B8_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6452*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6453*9880d681SAndroid Build Coastguard Worker
6454*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i16_zero
6455*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6456*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B16_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6457*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6458*9880d681SAndroid Build Coastguard Worker
6459*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i32_zero
6460*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
6461*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B32_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6462*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6463*9880d681SAndroid Build Coastguard Worker
6464*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v2i64_zero
6465*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int64Regs:$r, Int64Regs:$g),
6466*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V2B64_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6467*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6468*9880d681SAndroid Build Coastguard Worker
6469*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i8_zero
6470*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6471*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6472*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B8_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6473*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6474*9880d681SAndroid Build Coastguard Worker
6475*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i16_zero
6476*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6477*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6478*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B16_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6479*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6480*9880d681SAndroid Build Coastguard Worker
6481*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_1d_array_v4i32_zero
6482*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6483*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6484*9880d681SAndroid Build Coastguard Worker          (SUST_B_1D_ARRAY_V4B32_ZERO Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6485*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6486*9880d681SAndroid Build Coastguard Worker
6487*9880d681SAndroid Build Coastguard Worker
6488*9880d681SAndroid Build Coastguard Worker
6489*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i8_zero
6490*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6491*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B8_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6492*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6493*9880d681SAndroid Build Coastguard Worker
6494*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i16_zero
6495*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6496*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B16_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6497*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6498*9880d681SAndroid Build Coastguard Worker
6499*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i32_zero
6500*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
6501*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B32_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6502*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6503*9880d681SAndroid Build Coastguard Worker
6504*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_i64_zero
6505*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
6506*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_B64_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6507*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
6508*9880d681SAndroid Build Coastguard Worker
6509*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i8_zero
6510*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r, Int16Regs:$g),
6511*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B8_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6512*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6513*9880d681SAndroid Build Coastguard Worker
6514*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i16_zero
6515*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r, Int16Regs:$g),
6516*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B16_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6517*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6518*9880d681SAndroid Build Coastguard Worker
6519*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i32_zero
6520*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r, Int32Regs:$g),
6521*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B32_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6522*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6523*9880d681SAndroid Build Coastguard Worker
6524*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v2i64_zero
6525*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r, Int64Regs:$g),
6526*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V2B64_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6527*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6528*9880d681SAndroid Build Coastguard Worker
6529*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i8_zero
6530*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6531*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6532*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B8_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6533*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6534*9880d681SAndroid Build Coastguard Worker
6535*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i16_zero
6536*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6537*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6538*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B16_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6539*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6540*9880d681SAndroid Build Coastguard Worker
6541*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_v4i32_zero
6542*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6543*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6544*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_V4B32_ZERO Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6545*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6546*9880d681SAndroid Build Coastguard Worker
6547*9880d681SAndroid Build Coastguard Worker
6548*9880d681SAndroid Build Coastguard Worker
6549*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i8_zero
6550*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6551*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B8_ZERO Int64Regs:$s,
6552*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6553*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6554*9880d681SAndroid Build Coastguard Worker
6555*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i16_zero
6556*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6557*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B16_ZERO Int64Regs:$s,
6558*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6559*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6560*9880d681SAndroid Build Coastguard Worker
6561*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i32_zero
6562*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
6563*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B32_ZERO Int64Regs:$s,
6564*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6565*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6566*9880d681SAndroid Build Coastguard Worker
6567*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_i64_zero
6568*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r),
6569*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_B64_ZERO Int64Regs:$s,
6570*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6571*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
6572*9880d681SAndroid Build Coastguard Worker
6573*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i8_zero
6574*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6575*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6576*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B8_ZERO Int64Regs:$s, Int32Regs:$l,
6577*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6578*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6579*9880d681SAndroid Build Coastguard Worker
6580*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i16_zero
6581*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6582*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6583*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B16_ZERO Int64Regs:$s, Int32Regs:$l,
6584*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6585*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6586*9880d681SAndroid Build Coastguard Worker
6587*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i32_zero
6588*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
6589*9880d681SAndroid Build Coastguard Worker           Int32Regs:$g),
6590*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B32_ZERO Int64Regs:$s, Int32Regs:$l,
6591*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$r, Int32Regs:$g)>;
6592*9880d681SAndroid Build Coastguard Worker
6593*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v2i64_zero
6594*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int64Regs:$r,
6595*9880d681SAndroid Build Coastguard Worker           Int64Regs:$g),
6596*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V2B64_ZERO Int64Regs:$s, Int32Regs:$l,
6597*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int64Regs:$r, Int64Regs:$g)>;
6598*9880d681SAndroid Build Coastguard Worker
6599*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i8_zero
6600*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6601*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6602*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B8_ZERO Int64Regs:$s,
6603*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6604*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6605*9880d681SAndroid Build Coastguard Worker
6606*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i16_zero
6607*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6608*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6609*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B16_ZERO Int64Regs:$s,
6610*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6611*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6612*9880d681SAndroid Build Coastguard Worker
6613*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_2d_array_v4i32_zero
6614*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6615*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6616*9880d681SAndroid Build Coastguard Worker          (SUST_B_2D_ARRAY_V4B32_ZERO Int64Regs:$s, Int32Regs:$l,
6617*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6618*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6619*9880d681SAndroid Build Coastguard Worker
6620*9880d681SAndroid Build Coastguard Worker
6621*9880d681SAndroid Build Coastguard Worker
6622*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i8_zero
6623*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6624*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r),
6625*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B8_ZERO Int64Regs:$s,
6626*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6627*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6628*9880d681SAndroid Build Coastguard Worker
6629*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i16_zero
6630*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6631*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r),
6632*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B16_ZERO Int64Regs:$s,
6633*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6634*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6635*9880d681SAndroid Build Coastguard Worker
6636*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i32_zero
6637*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6638*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r),
6639*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B32_ZERO Int64Regs:$s,
6640*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6641*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6642*9880d681SAndroid Build Coastguard Worker
6643*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_i64_zero
6644*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6645*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r),
6646*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_B64_ZERO Int64Regs:$s,
6647*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6648*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r)>;
6649*9880d681SAndroid Build Coastguard Worker
6650*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i8_zero
6651*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6652*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6653*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B8_ZERO Int64Regs:$s,
6654*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6655*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6656*9880d681SAndroid Build Coastguard Worker
6657*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i16_zero
6658*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6659*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6660*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B16_ZERO Int64Regs:$s,
6661*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6662*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6663*9880d681SAndroid Build Coastguard Worker
6664*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i32_zero
6665*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6666*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g),
6667*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B32_ZERO Int64Regs:$s,
6668*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6669*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6670*9880d681SAndroid Build Coastguard Worker
6671*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v2i64_zero
6672*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6673*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g),
6674*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V2B64_ZERO Int64Regs:$s,
6675*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6676*9880d681SAndroid Build Coastguard Worker           Int64Regs:$r, Int64Regs:$g)>;
6677*9880d681SAndroid Build Coastguard Worker
6678*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i8_zero
6679*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6680*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6681*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B8_ZERO Int64Regs:$s,
6682*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6683*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6684*9880d681SAndroid Build Coastguard Worker
6685*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i16_zero
6686*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6687*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6688*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B16_ZERO Int64Regs:$s,
6689*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6690*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6691*9880d681SAndroid Build Coastguard Worker
6692*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_b_3d_v4i32_zero
6693*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6694*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6695*9880d681SAndroid Build Coastguard Worker          (SUST_B_3D_V4B32_ZERO Int64Regs:$s,
6696*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6697*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6698*9880d681SAndroid Build Coastguard Worker
6699*9880d681SAndroid Build Coastguard Worker
6700*9880d681SAndroid Build Coastguard Worker
6701*9880d681SAndroid Build Coastguard Worker
6702*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_i8_trap
6703*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
6704*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_B8_TRAP Int64Regs:$s, Int32Regs:$x, Int16Regs:$r)>;
6705*9880d681SAndroid Build Coastguard Worker
6706*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_i16_trap
6707*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r),
6708*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_B16_TRAP Int64Regs:$s, Int32Regs:$x, Int16Regs:$r)>;
6709*9880d681SAndroid Build Coastguard Worker
6710*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_i32_trap
6711*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$r),
6712*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_B32_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$r)>;
6713*9880d681SAndroid Build Coastguard Worker
6714*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_v2i8_trap
6715*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6716*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_V2B8_TRAP Int64Regs:$s, Int32Regs:$x,
6717*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6718*9880d681SAndroid Build Coastguard Worker
6719*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_v2i16_trap
6720*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6721*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_V2B16_TRAP Int64Regs:$s, Int32Regs:$x,
6722*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6723*9880d681SAndroid Build Coastguard Worker
6724*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_v2i32_trap
6725*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
6726*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_V2B32_TRAP Int64Regs:$s, Int32Regs:$x,
6727*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6728*9880d681SAndroid Build Coastguard Worker
6729*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_v4i8_trap
6730*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6731*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6732*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_V4B8_TRAP Int64Regs:$s, Int32Regs:$x,
6733*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6734*9880d681SAndroid Build Coastguard Worker
6735*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_v4i16_trap
6736*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6737*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6738*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_V4B16_TRAP Int64Regs:$s, Int32Regs:$x,
6739*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6740*9880d681SAndroid Build Coastguard Worker
6741*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_v4i32_trap
6742*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x,
6743*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6744*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_V4B32_TRAP Int64Regs:$s, Int32Regs:$x,
6745*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6746*9880d681SAndroid Build Coastguard Worker
6747*9880d681SAndroid Build Coastguard Worker
6748*9880d681SAndroid Build Coastguard Worker
6749*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_i8_trap
6750*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r),
6751*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_B8_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6752*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6753*9880d681SAndroid Build Coastguard Worker
6754*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_i16_trap
6755*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r),
6756*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_B16_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6757*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6758*9880d681SAndroid Build Coastguard Worker
6759*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_i32_trap
6760*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$r),
6761*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_B32_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6762*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6763*9880d681SAndroid Build Coastguard Worker
6764*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_v2i8_trap
6765*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6766*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_V2B8_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6767*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6768*9880d681SAndroid Build Coastguard Worker
6769*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_v2i16_trap
6770*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int16Regs:$r, Int16Regs:$g),
6771*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_V2B16_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6772*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6773*9880d681SAndroid Build Coastguard Worker
6774*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_v2i32_trap
6775*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$r, Int32Regs:$g),
6776*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_V2B32_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6777*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6778*9880d681SAndroid Build Coastguard Worker
6779*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_v4i8_trap
6780*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6781*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6782*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_V4B8_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6783*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6784*9880d681SAndroid Build Coastguard Worker
6785*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_v4i16_trap
6786*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6787*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6788*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_V4B16_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6789*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6790*9880d681SAndroid Build Coastguard Worker
6791*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_1d_array_v4i32_trap
6792*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6793*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6794*9880d681SAndroid Build Coastguard Worker          (SUST_P_1D_ARRAY_V4B32_TRAP Int64Regs:$s, Int32Regs:$l, Int32Regs:$x,
6795*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6796*9880d681SAndroid Build Coastguard Worker
6797*9880d681SAndroid Build Coastguard Worker
6798*9880d681SAndroid Build Coastguard Worker
6799*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_i8_trap
6800*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6801*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_B8_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6802*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6803*9880d681SAndroid Build Coastguard Worker
6804*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_i16_trap
6805*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6806*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_B16_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6807*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6808*9880d681SAndroid Build Coastguard Worker
6809*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_i32_trap
6810*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
6811*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_B32_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6812*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6813*9880d681SAndroid Build Coastguard Worker
6814*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_v2i8_trap
6815*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r, Int16Regs:$g),
6816*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_V2B8_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6817*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6818*9880d681SAndroid Build Coastguard Worker
6819*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_v2i16_trap
6820*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r, Int16Regs:$g),
6821*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_V2B16_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6822*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6823*9880d681SAndroid Build Coastguard Worker
6824*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_v2i32_trap
6825*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r, Int32Regs:$g),
6826*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_V2B32_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6827*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6828*9880d681SAndroid Build Coastguard Worker
6829*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_v4i8_trap
6830*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6831*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6832*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_V4B8_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6833*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6834*9880d681SAndroid Build Coastguard Worker
6835*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_v4i16_trap
6836*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6837*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6838*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_V4B16_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6839*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6840*9880d681SAndroid Build Coastguard Worker
6841*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_v4i32_trap
6842*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6843*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6844*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_V4B32_TRAP Int64Regs:$s, Int32Regs:$x, Int32Regs:$y,
6845*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6846*9880d681SAndroid Build Coastguard Worker
6847*9880d681SAndroid Build Coastguard Worker
6848*9880d681SAndroid Build Coastguard Worker
6849*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_i8_trap
6850*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6851*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_B8_TRAP Int64Regs:$s,
6852*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6853*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6854*9880d681SAndroid Build Coastguard Worker
6855*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_i16_trap
6856*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int16Regs:$r),
6857*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_B16_TRAP Int64Regs:$s,
6858*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6859*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6860*9880d681SAndroid Build Coastguard Worker
6861*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_i32_trap
6862*9880d681SAndroid Build Coastguard Worker          Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r),
6863*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_B32_TRAP Int64Regs:$s,
6864*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6865*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6866*9880d681SAndroid Build Coastguard Worker
6867*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_v2i8_trap
6868*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6869*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6870*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_V2B8_TRAP Int64Regs:$s, Int32Regs:$l,
6871*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6872*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6873*9880d681SAndroid Build Coastguard Worker
6874*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_v2i16_trap
6875*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6876*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6877*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_V2B16_TRAP Int64Regs:$s, Int32Regs:$l,
6878*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6879*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6880*9880d681SAndroid Build Coastguard Worker
6881*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_v2i32_trap
6882*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y, Int32Regs:$r,
6883*9880d681SAndroid Build Coastguard Worker           Int32Regs:$g),
6884*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_V2B32_TRAP Int64Regs:$s, Int32Regs:$l,
6885*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$r, Int32Regs:$g)>;
6886*9880d681SAndroid Build Coastguard Worker
6887*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_v4i8_trap
6888*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6889*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6890*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_V4B8_TRAP Int64Regs:$s,
6891*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6892*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6893*9880d681SAndroid Build Coastguard Worker
6894*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_v4i16_trap
6895*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6896*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6897*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_V4B16_TRAP Int64Regs:$s,
6898*9880d681SAndroid Build Coastguard Worker           Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6899*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6900*9880d681SAndroid Build Coastguard Worker
6901*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_2d_array_v4i32_trap
6902*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$l, Int32Regs:$x, Int32Regs:$y,
6903*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6904*9880d681SAndroid Build Coastguard Worker          (SUST_P_2D_ARRAY_V4B32_TRAP Int64Regs:$s, Int32Regs:$l,
6905*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y,
6906*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6907*9880d681SAndroid Build Coastguard Worker
6908*9880d681SAndroid Build Coastguard Worker
6909*9880d681SAndroid Build Coastguard Worker
6910*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_i8_trap
6911*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6912*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r),
6913*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_B8_TRAP Int64Regs:$s,
6914*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6915*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6916*9880d681SAndroid Build Coastguard Worker
6917*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_i16_trap
6918*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6919*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r),
6920*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_B16_TRAP Int64Regs:$s,
6921*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6922*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r)>;
6923*9880d681SAndroid Build Coastguard Worker
6924*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_i32_trap
6925*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6926*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r),
6927*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_B32_TRAP Int64Regs:$s,
6928*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6929*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r)>;
6930*9880d681SAndroid Build Coastguard Worker
6931*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_v2i8_trap
6932*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6933*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6934*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_V2B8_TRAP Int64Regs:$s,
6935*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6936*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6937*9880d681SAndroid Build Coastguard Worker
6938*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_v2i16_trap
6939*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6940*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g),
6941*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_V2B16_TRAP Int64Regs:$s,
6942*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6943*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g)>;
6944*9880d681SAndroid Build Coastguard Worker
6945*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_v2i32_trap
6946*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6947*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g),
6948*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_V2B32_TRAP Int64Regs:$s,
6949*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6950*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g)>;
6951*9880d681SAndroid Build Coastguard Worker
6952*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_v4i8_trap
6953*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6954*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6955*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_V4B8_TRAP Int64Regs:$s,
6956*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6957*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6958*9880d681SAndroid Build Coastguard Worker
6959*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_v4i16_trap
6960*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6961*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a),
6962*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_V4B16_TRAP Int64Regs:$s,
6963*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6964*9880d681SAndroid Build Coastguard Worker           Int16Regs:$r, Int16Regs:$g, Int16Regs:$b, Int16Regs:$a)>;
6965*9880d681SAndroid Build Coastguard Worker
6966*9880d681SAndroid Build Coastguard Workerdef : Pat<(int_nvvm_sust_p_3d_v4i32_trap
6967*9880d681SAndroid Build Coastguard Worker           Int64Regs:$s, Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6968*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a),
6969*9880d681SAndroid Build Coastguard Worker          (SUST_P_3D_V4B32_TRAP Int64Regs:$s,
6970*9880d681SAndroid Build Coastguard Worker           Int32Regs:$x, Int32Regs:$y, Int32Regs:$z,
6971*9880d681SAndroid Build Coastguard Worker           Int32Regs:$r, Int32Regs:$g, Int32Regs:$b, Int32Regs:$a)>;
6972*9880d681SAndroid Build Coastguard Worker
6973*9880d681SAndroid Build Coastguard Worker//-----------------------------------
6974*9880d681SAndroid Build Coastguard Worker// Read Special Registers
6975*9880d681SAndroid Build Coastguard Worker//-----------------------------------
6976*9880d681SAndroid Build Coastguard Worker
6977*9880d681SAndroid Build Coastguard Workerclass PTX_READ_SREG_R64<string regname, Intrinsic intop>
6978*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int64Regs:$d), (ins),
6979*9880d681SAndroid Build Coastguard Worker              !strconcat(!strconcat("mov.u64\t$d, %", regname), ";"),
6980*9880d681SAndroid Build Coastguard Worker              [(set Int64Regs:$d, (intop))]>;
6981*9880d681SAndroid Build Coastguard Worker
6982*9880d681SAndroid Build Coastguard Workerclass PTX_READ_SREG_R32<string regname, Intrinsic intop>
6983*9880d681SAndroid Build Coastguard Worker  : NVPTXInst<(outs Int32Regs:$d), (ins),
6984*9880d681SAndroid Build Coastguard Worker              !strconcat(!strconcat("mov.u32\t$d, %", regname), ";"),
6985*9880d681SAndroid Build Coastguard Worker              [(set Int32Regs:$d, (intop))]>;
6986*9880d681SAndroid Build Coastguard Worker
6987*9880d681SAndroid Build Coastguard Worker// TODO Add read vector-version of special registers
6988*9880d681SAndroid Build Coastguard Worker
6989*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_TID_X :
6990*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"tid.x", int_nvvm_read_ptx_sreg_tid_x>;
6991*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_TID_Y :
6992*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"tid.y", int_nvvm_read_ptx_sreg_tid_y>;
6993*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_TID_Z :
6994*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"tid.z", int_nvvm_read_ptx_sreg_tid_z>;
6995*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_TID_W :
6996*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"tid.w", int_nvvm_read_ptx_sreg_tid_w>;
6997*9880d681SAndroid Build Coastguard Worker
6998*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NTID_X :
6999*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"ntid.x", int_nvvm_read_ptx_sreg_ntid_x>;
7000*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NTID_Y :
7001*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"ntid.y", int_nvvm_read_ptx_sreg_ntid_y>;
7002*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NTID_Z :
7003*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"ntid.z", int_nvvm_read_ptx_sreg_ntid_z>;
7004*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NTID_W :
7005*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"ntid.w", int_nvvm_read_ptx_sreg_ntid_w>;
7006*9880d681SAndroid Build Coastguard Worker
7007*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_LANEID :
7008*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"laneid", int_nvvm_read_ptx_sreg_laneid>;
7009*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_WARPID :
7010*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"warpid", int_nvvm_read_ptx_sreg_warpid>;
7011*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NWARPID :
7012*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"nwarpid", int_nvvm_read_ptx_sreg_nwarpid>;
7013*9880d681SAndroid Build Coastguard Worker
7014*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_CTAID_X :
7015*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"ctaid.x", int_nvvm_read_ptx_sreg_ctaid_x>;
7016*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_CTAID_Y :
7017*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"ctaid.y", int_nvvm_read_ptx_sreg_ctaid_y>;
7018*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_CTAID_Z :
7019*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"ctaid.z", int_nvvm_read_ptx_sreg_ctaid_z>;
7020*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_CTAID_W :
7021*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"ctaid.w", int_nvvm_read_ptx_sreg_ctaid_w>;
7022*9880d681SAndroid Build Coastguard Worker
7023*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NCTAID_X :
7024*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"nctaid.x", int_nvvm_read_ptx_sreg_nctaid_x>;
7025*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NCTAID_Y :
7026*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"nctaid.y", int_nvvm_read_ptx_sreg_nctaid_y>;
7027*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NCTAID_Z :
7028*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"nctaid.z", int_nvvm_read_ptx_sreg_nctaid_z>;
7029*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NCTAID_W :
7030*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"nctaid.w", int_nvvm_read_ptx_sreg_nctaid_w>;
7031*9880d681SAndroid Build Coastguard Worker
7032*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_SMID :
7033*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"smid", int_nvvm_read_ptx_sreg_smid>;
7034*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_NSMID :
7035*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"nsmid", int_nvvm_read_ptx_sreg_nsmid>;
7036*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_GRIDID :
7037*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"gridid", int_nvvm_read_ptx_sreg_gridid>;
7038*9880d681SAndroid Build Coastguard Worker
7039*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_LANEMASK_EQ :
7040*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"lanemask_eq", int_nvvm_read_ptx_sreg_lanemask_eq>;
7041*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_LANEMASK_LE :
7042*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"lanemask_le", int_nvvm_read_ptx_sreg_lanemask_le>;
7043*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_LANEMASK_LT :
7044*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"lanemask_lt", int_nvvm_read_ptx_sreg_lanemask_lt>;
7045*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_LANEMASK_GE :
7046*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"lanemask_ge", int_nvvm_read_ptx_sreg_lanemask_ge>;
7047*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_LANEMASK_GT :
7048*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"lanemask_gt", int_nvvm_read_ptx_sreg_lanemask_gt>;
7049*9880d681SAndroid Build Coastguard Worker
7050*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_CLOCK :
7051*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R32<"clock", int_nvvm_read_ptx_sreg_clock>;
7052*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_CLOCK64 :
7053*9880d681SAndroid Build Coastguard Worker    PTX_READ_SREG_R64<"clock64", int_nvvm_read_ptx_sreg_clock64>;
7054*9880d681SAndroid Build Coastguard Worker
7055*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_PM0 : PTX_READ_SREG_R32<"pm0", int_nvvm_read_ptx_sreg_pm0>;
7056*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_PM1 : PTX_READ_SREG_R32<"pm1", int_nvvm_read_ptx_sreg_pm1>;
7057*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_PM2 : PTX_READ_SREG_R32<"pm2", int_nvvm_read_ptx_sreg_pm2>;
7058*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_PM3 : PTX_READ_SREG_R32<"pm3", int_nvvm_read_ptx_sreg_pm3>;
7059*9880d681SAndroid Build Coastguard Worker
7060*9880d681SAndroid Build Coastguard Worker// TODO: It would be nice to use PTX_READ_SREG here, but it doesn't
7061*9880d681SAndroid Build Coastguard Worker// handle the constant.
7062*9880d681SAndroid Build Coastguard Workerdef INT_PTX_SREG_WARPSIZE :
7063*9880d681SAndroid Build Coastguard Worker    NVPTXInst<(outs Int32Regs:$dst), (ins), "mov.u32 \t$dst, WARP_SZ;",
7064*9880d681SAndroid Build Coastguard Worker              [(set Int32Regs:$dst, (int_nvvm_read_ptx_sreg_warpsize))]>;
7065