xref: /aosp_15_r20/frameworks/rs/driver/runtime/ll64/allocation.ll (revision e1eccf28f96817838ad6867f7f39d2351ec11f56)
1*e1eccf28SAndroid Build Coastguard Workertarget datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
2*e1eccf28SAndroid Build Coastguard Workertarget triple = "aarch64-linux-android"
3*e1eccf28SAndroid Build Coastguard Worker
4*e1eccf28SAndroid Build Coastguard Worker%struct.rs_allocation = type { i64*, i64*, i64*, i64* }
5*e1eccf28SAndroid Build Coastguard Worker
6*e1eccf28SAndroid Build Coastguard Workerdeclare i8* @rsOffset(%struct.rs_allocation* nocapture readonly %a, i32 %sizeOf, i32 %x, i32 %y, i32 %z)
7*e1eccf28SAndroid Build Coastguard Workerdeclare i8* @rsOffsetNs(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z)
8*e1eccf28SAndroid Build Coastguard Worker
9*e1eccf28SAndroid Build Coastguard Worker; The loads and stores in this file are annotated with RenderScript-specific
10*e1eccf28SAndroid Build Coastguard Worker; information for the type based alias analysis, such that the TBAA analysis
11*e1eccf28SAndroid Build Coastguard Worker; understands that loads and stores from two allocations with different types
12*e1eccf28SAndroid Build Coastguard Worker; can never access the same memory element. This is different from C, where
13*e1eccf28SAndroid Build Coastguard Worker; a char or uchar load/store is special as it can alias with about everything.
14*e1eccf28SAndroid Build Coastguard Worker;
15*e1eccf28SAndroid Build Coastguard Worker; The TBAA tree in this file has the the node "RenderScript Distinct TBAA" as
16*e1eccf28SAndroid Build Coastguard Worker; its root.
17*e1eccf28SAndroid Build Coastguard Worker; This means all loads/stores that share this common root can be proven to not
18*e1eccf28SAndroid Build Coastguard Worker; alias. However, the alias analysis still has to assume MayAlias between
19*e1eccf28SAndroid Build Coastguard Worker; memory accesses in this file and memory accesses annotated with the C/C++
20*e1eccf28SAndroid Build Coastguard Worker; TBAA metadata.
21*e1eccf28SAndroid Build Coastguard Worker; A node named "RenderScript TBAA" wraps our distinct TBAA root node.
22*e1eccf28SAndroid Build Coastguard Worker; If we can ensure that all accesses to elements loaded from RenderScript
23*e1eccf28SAndroid Build Coastguard Worker; allocations are either annotated with the RenderScript TBAA information or
24*e1eccf28SAndroid Build Coastguard Worker; not annotated at all, but never annotated with the C/C++ metadata, we
25*e1eccf28SAndroid Build Coastguard Worker; can add the "RenderScript TBAA" tree under the C/C++ TBAA tree. This enables
26*e1eccf28SAndroid Build Coastguard Worker; TBAA to prove that an access to data from the RenderScript allocation
27*e1eccf28SAndroid Build Coastguard Worker; does not alias with a load/store accessing something not part of a RenderScript
28*e1eccf28SAndroid Build Coastguard Worker; allocation.
29*e1eccf28SAndroid Build Coastguard Worker; We do this by swapping the second operand of "RenderScript TBAA" with the node
30*e1eccf28SAndroid Build Coastguard Worker; for "Simple C/C++ TBAA", thus connecting these TBAA groups. The other root
31*e1eccf28SAndroid Build Coastguard Worker; node (with no children) can then safely be dropped from the analysis.
32*e1eccf28SAndroid Build Coastguard Worker
33*e1eccf28SAndroid Build Coastguard Worker!13 = !{!"RenderScript Distinct TBAA"}
34*e1eccf28SAndroid Build Coastguard Worker!14 = !{!"RenderScript TBAA", !13}
35*e1eccf28SAndroid Build Coastguard Worker!15 = !{!"allocation", !14}
36*e1eccf28SAndroid Build Coastguard Worker
37*e1eccf28SAndroid Build Coastguard Worker!21 = !{!"char", !15}
38*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_char(%struct.rs_allocation* nocapture readonly %a, i8 signext %val, i32 %x, i32 %y, i32 %z) #1 {
39*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 1, i32 %x, i32 %y, i32 %z) #2
40*e1eccf28SAndroid Build Coastguard Worker  store i8 %val, i8* %1, align 1, !tbaa !21
41*e1eccf28SAndroid Build Coastguard Worker  ret void
42*e1eccf28SAndroid Build Coastguard Worker}
43*e1eccf28SAndroid Build Coastguard Worker
44*e1eccf28SAndroid Build Coastguard Workerdefine signext i8 @rsGetElementAtImpl_char(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
45*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 1, i32 %x, i32 %y, i32 %z) #2
46*e1eccf28SAndroid Build Coastguard Worker  %2 = load i8, i8* %1, align 1, !tbaa !21
47*e1eccf28SAndroid Build Coastguard Worker  ret i8 %2
48*e1eccf28SAndroid Build Coastguard Worker}
49*e1eccf28SAndroid Build Coastguard Worker
50*e1eccf28SAndroid Build Coastguard Worker!22 = !{!"char2", !15}
51*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_char2(%struct.rs_allocation* nocapture readonly %a, i16 %val, i32 %x, i32 %y, i32 %z) #1 {
52*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 2, i32 %x, i32 %y, i32 %z) #2
53*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i8>*
54*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i16 %val to <2 x i8>
55*e1eccf28SAndroid Build Coastguard Worker  store <2 x i8> %3, <2 x i8>* %2, align 2, !tbaa !22
56*e1eccf28SAndroid Build Coastguard Worker  ret void
57*e1eccf28SAndroid Build Coastguard Worker}
58*e1eccf28SAndroid Build Coastguard Worker
59*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i8> @rsGetElementAtImpl_char2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
60*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 2, i32 %x, i32 %y, i32 %z) #2
61*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i8>*
62*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i8>, <2 x i8>* %2, align 2, !tbaa !22
63*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i8> %3
64*e1eccf28SAndroid Build Coastguard Worker}
65*e1eccf28SAndroid Build Coastguard Worker
66*e1eccf28SAndroid Build Coastguard Worker!23 = !{!"char3", !15}
67*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_char3(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
68*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
69*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i32 %val to <4 x i8>
70*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <4 x i8> %2, <4 x i8> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
71*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x i8>*
72*e1eccf28SAndroid Build Coastguard Worker  store <4 x i8> %3, <4 x i8>* %4, align 4, !tbaa !23
73*e1eccf28SAndroid Build Coastguard Worker  ret void
74*e1eccf28SAndroid Build Coastguard Worker}
75*e1eccf28SAndroid Build Coastguard Worker
76*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i8> @rsGetElementAtImpl_char3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
77*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
78*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
79*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i8>, <4 x i8>* %2, align 4, !tbaa !23
80*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i8> %3, <4 x i8> undef, <3 x i32> <i32 0, i32 1, i32 2>
81*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i8> %4
82*e1eccf28SAndroid Build Coastguard Worker}
83*e1eccf28SAndroid Build Coastguard Worker
84*e1eccf28SAndroid Build Coastguard Worker!24 = !{!"char4", !15}
85*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_char4(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
86*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
87*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
88*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <4 x i8>
89*e1eccf28SAndroid Build Coastguard Worker  store <4 x i8> %3, <4 x i8>* %2, align 4, !tbaa !24
90*e1eccf28SAndroid Build Coastguard Worker  ret void
91*e1eccf28SAndroid Build Coastguard Worker}
92*e1eccf28SAndroid Build Coastguard Worker
93*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i8> @rsGetElementAtImpl_char4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
94*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
95*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
96*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i8>, <4 x i8>* %2, align 4, !tbaa !24
97*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i8> %3
98*e1eccf28SAndroid Build Coastguard Worker}
99*e1eccf28SAndroid Build Coastguard Worker
100*e1eccf28SAndroid Build Coastguard Worker!25 = !{!"uchar", !15}
101*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_uchar(%struct.rs_allocation* nocapture readonly %a, i8 zeroext %val, i32 %x, i32 %y, i32 %z) #1 {
102*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 1, i32 %x, i32 %y, i32 %z) #2
103*e1eccf28SAndroid Build Coastguard Worker  store i8 %val, i8* %1, align 1, !tbaa !25
104*e1eccf28SAndroid Build Coastguard Worker  ret void
105*e1eccf28SAndroid Build Coastguard Worker}
106*e1eccf28SAndroid Build Coastguard Worker
107*e1eccf28SAndroid Build Coastguard Workerdefine zeroext i8 @rsGetElementAtImpl_uchar(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
108*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 1, i32 %x, i32 %y, i32 %z) #2
109*e1eccf28SAndroid Build Coastguard Worker  %2 = load i8, i8* %1, align 1, !tbaa !25
110*e1eccf28SAndroid Build Coastguard Worker  ret i8 %2
111*e1eccf28SAndroid Build Coastguard Worker}
112*e1eccf28SAndroid Build Coastguard Worker
113*e1eccf28SAndroid Build Coastguard Worker!26 = !{!"uchar2", !15}
114*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_uchar2(%struct.rs_allocation* nocapture readonly %a, i16 %val, i32 %x, i32 %y, i32 %z) #1 {
115*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 2, i32 %x, i32 %y, i32 %z) #2
116*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i8>*
117*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i16 %val to <2 x i8>
118*e1eccf28SAndroid Build Coastguard Worker  store <2 x i8> %3, <2 x i8>* %2, align 2, !tbaa !26
119*e1eccf28SAndroid Build Coastguard Worker  ret void
120*e1eccf28SAndroid Build Coastguard Worker}
121*e1eccf28SAndroid Build Coastguard Worker
122*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i8> @rsGetElementAtImpl_uchar2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
123*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 2, i32 %x, i32 %y, i32 %z) #2
124*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i8>*
125*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i8>, <2 x i8>* %2, align 2, !tbaa !26
126*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i8> %3
127*e1eccf28SAndroid Build Coastguard Worker}
128*e1eccf28SAndroid Build Coastguard Worker
129*e1eccf28SAndroid Build Coastguard Worker!27 = !{!"uchar3", !15}
130*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_uchar3(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
131*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
132*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i32 %val to <4 x i8>
133*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <4 x i8> %2, <4 x i8> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
134*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x i8>*
135*e1eccf28SAndroid Build Coastguard Worker  store <4 x i8> %3, <4 x i8>* %4, align 4, !tbaa !27
136*e1eccf28SAndroid Build Coastguard Worker  ret void
137*e1eccf28SAndroid Build Coastguard Worker}
138*e1eccf28SAndroid Build Coastguard Worker
139*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i8> @rsGetElementAtImpl_uchar3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
140*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
141*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
142*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i8>, <4 x i8>* %2, align 4, !tbaa !27
143*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i8> %3, <4 x i8> undef, <3 x i32> <i32 0, i32 1, i32 2>
144*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i8> %4
145*e1eccf28SAndroid Build Coastguard Worker}
146*e1eccf28SAndroid Build Coastguard Worker
147*e1eccf28SAndroid Build Coastguard Worker!28 = !{!"uchar4", !15}
148*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_uchar4(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
149*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
150*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
151*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <4 x i8>
152*e1eccf28SAndroid Build Coastguard Worker  store <4 x i8> %3, <4 x i8>* %2, align 4, !tbaa !28
153*e1eccf28SAndroid Build Coastguard Worker  ret void
154*e1eccf28SAndroid Build Coastguard Worker}
155*e1eccf28SAndroid Build Coastguard Worker
156*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i8> @rsGetElementAtImpl_uchar4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
157*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
158*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
159*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i8>, <4 x i8>* %2, align 4, !tbaa !28
160*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i8> %3
161*e1eccf28SAndroid Build Coastguard Worker}
162*e1eccf28SAndroid Build Coastguard Worker
163*e1eccf28SAndroid Build Coastguard Worker!29 = !{!"short", !15}
164*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_short(%struct.rs_allocation* nocapture readonly %a, i16 signext %val, i32 %x, i32 %y, i32 %z) #1 {
165*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 2, i32 %x, i32 %y, i32 %z) #2
166*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i16*
167*e1eccf28SAndroid Build Coastguard Worker  store i16 %val, i16* %2, align 2, !tbaa !29
168*e1eccf28SAndroid Build Coastguard Worker  ret void
169*e1eccf28SAndroid Build Coastguard Worker}
170*e1eccf28SAndroid Build Coastguard Worker
171*e1eccf28SAndroid Build Coastguard Workerdefine signext i16 @rsGetElementAtImpl_short(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
172*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 2, i32 %x, i32 %y, i32 %z) #2
173*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i16*
174*e1eccf28SAndroid Build Coastguard Worker  %3 = load i16, i16* %2, align 2, !tbaa !29
175*e1eccf28SAndroid Build Coastguard Worker  ret i16 %3
176*e1eccf28SAndroid Build Coastguard Worker}
177*e1eccf28SAndroid Build Coastguard Worker
178*e1eccf28SAndroid Build Coastguard Worker!30 = !{!"short2", !15}
179*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_short2(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
180*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
181*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i16>*
182*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <2 x i16>
183*e1eccf28SAndroid Build Coastguard Worker  store <2 x i16> %3, <2 x i16>* %2, align 4, !tbaa !30
184*e1eccf28SAndroid Build Coastguard Worker  ret void
185*e1eccf28SAndroid Build Coastguard Worker}
186*e1eccf28SAndroid Build Coastguard Worker
187*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i16> @rsGetElementAtImpl_short2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
188*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
189*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i16>*
190*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i16>, <2 x i16>* %2, align 4, !tbaa !30
191*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i16> %3
192*e1eccf28SAndroid Build Coastguard Worker}
193*e1eccf28SAndroid Build Coastguard Worker
194*e1eccf28SAndroid Build Coastguard Worker!31 = !{!"short3", !15}
195*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_short3(%struct.rs_allocation* nocapture readonly %a, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
196*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
197*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast <2 x i32> %val to <4 x i16>
198*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <4 x i16> %2, <4 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
199*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x i16>*
200*e1eccf28SAndroid Build Coastguard Worker  store <4 x i16> %3, <4 x i16>* %4, align 8, !tbaa !31
201*e1eccf28SAndroid Build Coastguard Worker  ret void
202*e1eccf28SAndroid Build Coastguard Worker}
203*e1eccf28SAndroid Build Coastguard Worker
204*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i16> @rsGetElementAtImpl_short3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
205*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
206*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
207*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i16>, <4 x i16>* %2, align 8, !tbaa !31
208*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i16> %3, <4 x i16> undef, <3 x i32> <i32 0, i32 1, i32 2>
209*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i16> %4
210*e1eccf28SAndroid Build Coastguard Worker}
211*e1eccf28SAndroid Build Coastguard Worker
212*e1eccf28SAndroid Build Coastguard Worker!32 = !{!"short4", !15}
213*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_short4(%struct.rs_allocation* nocapture readonly %a, <4 x i16> %val, i32 %x, i32 %y, i32 %z) #1 {
214*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
215*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
216*e1eccf28SAndroid Build Coastguard Worker  store <4 x i16> %val, <4 x i16>* %2, align 8, !tbaa !32
217*e1eccf28SAndroid Build Coastguard Worker  ret void
218*e1eccf28SAndroid Build Coastguard Worker}
219*e1eccf28SAndroid Build Coastguard Worker
220*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i16> @rsGetElementAtImpl_short4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
221*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
222*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
223*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i16>, <4 x i16>* %2, align 8, !tbaa !32
224*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i16> %3
225*e1eccf28SAndroid Build Coastguard Worker}
226*e1eccf28SAndroid Build Coastguard Worker
227*e1eccf28SAndroid Build Coastguard Worker!33 = !{!"ushort", !15}
228*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_ushort(%struct.rs_allocation* nocapture readonly %a, i16 zeroext %val, i32 %x, i32 %y, i32 %z) #1 {
229*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 2, i32 %x, i32 %y, i32 %z) #2
230*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i16*
231*e1eccf28SAndroid Build Coastguard Worker  store i16 %val, i16* %2, align 2, !tbaa !33
232*e1eccf28SAndroid Build Coastguard Worker  ret void
233*e1eccf28SAndroid Build Coastguard Worker}
234*e1eccf28SAndroid Build Coastguard Worker
235*e1eccf28SAndroid Build Coastguard Workerdefine zeroext i16 @rsGetElementAtImpl_ushort(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
236*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 2, i32 %x, i32 %y, i32 %z) #2
237*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i16*
238*e1eccf28SAndroid Build Coastguard Worker  %3 = load i16, i16* %2, align 2, !tbaa !33
239*e1eccf28SAndroid Build Coastguard Worker  ret i16 %3
240*e1eccf28SAndroid Build Coastguard Worker}
241*e1eccf28SAndroid Build Coastguard Worker
242*e1eccf28SAndroid Build Coastguard Worker!34 = !{!"ushort2", !15}
243*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_ushort2(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
244*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
245*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i16>*
246*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <2 x i16>
247*e1eccf28SAndroid Build Coastguard Worker  store <2 x i16> %3, <2 x i16>* %2, align 4, !tbaa !34
248*e1eccf28SAndroid Build Coastguard Worker  ret void
249*e1eccf28SAndroid Build Coastguard Worker}
250*e1eccf28SAndroid Build Coastguard Worker
251*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i16> @rsGetElementAtImpl_ushort2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
252*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
253*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i16>*
254*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i16>, <2 x i16>* %2, align 4, !tbaa !34
255*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i16> %3
256*e1eccf28SAndroid Build Coastguard Worker}
257*e1eccf28SAndroid Build Coastguard Worker
258*e1eccf28SAndroid Build Coastguard Worker!35 = !{!"ushort3", !15}
259*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_ushort3(%struct.rs_allocation* nocapture readonly %a, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
260*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
261*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast <2 x i32> %val to <4 x i16>
262*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <4 x i16> %2, <4 x i16> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
263*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x i16>*
264*e1eccf28SAndroid Build Coastguard Worker  store <4 x i16> %3, <4 x i16>* %4, align 8, !tbaa !35
265*e1eccf28SAndroid Build Coastguard Worker  ret void
266*e1eccf28SAndroid Build Coastguard Worker}
267*e1eccf28SAndroid Build Coastguard Worker
268*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i16> @rsGetElementAtImpl_ushort3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
269*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
270*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
271*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i16>, <4 x i16>* %2, align 8, !tbaa !35
272*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i16> %3, <4 x i16> undef, <3 x i32> <i32 0, i32 1, i32 2>
273*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i16> %4
274*e1eccf28SAndroid Build Coastguard Worker}
275*e1eccf28SAndroid Build Coastguard Worker
276*e1eccf28SAndroid Build Coastguard Worker!36 = !{!"ushort4", !15}
277*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_ushort4(%struct.rs_allocation* nocapture readonly %a, <4 x i16> %val, i32 %x, i32 %y, i32 %z) #1 {
278*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
279*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
280*e1eccf28SAndroid Build Coastguard Worker  store <4 x i16> %val, <4 x i16>* %2, align 8, !tbaa !36
281*e1eccf28SAndroid Build Coastguard Worker  ret void
282*e1eccf28SAndroid Build Coastguard Worker}
283*e1eccf28SAndroid Build Coastguard Worker
284*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i16> @rsGetElementAtImpl_ushort4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
285*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
286*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
287*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i16>, <4 x i16>* %2, align 8, !tbaa !36
288*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i16> %3
289*e1eccf28SAndroid Build Coastguard Worker}
290*e1eccf28SAndroid Build Coastguard Worker
291*e1eccf28SAndroid Build Coastguard Worker!37 = !{!"int", !15}
292*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_int(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
293*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
294*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i32*
295*e1eccf28SAndroid Build Coastguard Worker  store i32 %val, i32* %2, align 4, !tbaa !37
296*e1eccf28SAndroid Build Coastguard Worker  ret void
297*e1eccf28SAndroid Build Coastguard Worker}
298*e1eccf28SAndroid Build Coastguard Worker
299*e1eccf28SAndroid Build Coastguard Workerdefine i32 @rsGetElementAtImpl_int(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
300*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
301*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i32*
302*e1eccf28SAndroid Build Coastguard Worker  %3 = load i32, i32* %2, align 4, !tbaa !37
303*e1eccf28SAndroid Build Coastguard Worker  ret i32 %3
304*e1eccf28SAndroid Build Coastguard Worker}
305*e1eccf28SAndroid Build Coastguard Worker
306*e1eccf28SAndroid Build Coastguard Worker!38 = !{!"int2", !15}
307*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_int2(%struct.rs_allocation* nocapture readonly %a, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
308*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
309*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i32>*
310*e1eccf28SAndroid Build Coastguard Worker  store <2 x i32> %val, <2 x i32>* %2, align 8, !tbaa !38
311*e1eccf28SAndroid Build Coastguard Worker  ret void
312*e1eccf28SAndroid Build Coastguard Worker}
313*e1eccf28SAndroid Build Coastguard Worker
314*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i32> @rsGetElementAtImpl_int2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
315*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
316*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i32>*
317*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i32>, <2 x i32>* %2, align 8, !tbaa !38
318*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i32> %3
319*e1eccf28SAndroid Build Coastguard Worker}
320*e1eccf28SAndroid Build Coastguard Worker
321*e1eccf28SAndroid Build Coastguard Worker!39 = !{!"int3", !15}
322*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_int3(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
323*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
324*e1eccf28SAndroid Build Coastguard Worker  %2 = shufflevector <4 x i32> %val, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
325*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <4 x i32>*
326*e1eccf28SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* %3, align 16, !tbaa !39
327*e1eccf28SAndroid Build Coastguard Worker  ret void
328*e1eccf28SAndroid Build Coastguard Worker}
329*e1eccf28SAndroid Build Coastguard Worker
330*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i32> @rsGetElementAtImpl_int3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
331*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
332*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
333*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i32>, <4 x i32>* %2, align 8, !tbaa !39
334*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i32> %3, <4 x i32> undef, <3 x i32> <i32 0, i32 1, i32 2>
335*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i32> %4
336*e1eccf28SAndroid Build Coastguard Worker}
337*e1eccf28SAndroid Build Coastguard Worker
338*e1eccf28SAndroid Build Coastguard Worker!40 = !{!"int4", !15}
339*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_int4(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
340*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
341*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
342*e1eccf28SAndroid Build Coastguard Worker  store <4 x i32> %val, <4 x i32>* %2, align 16, !tbaa !40
343*e1eccf28SAndroid Build Coastguard Worker  ret void
344*e1eccf28SAndroid Build Coastguard Worker}
345*e1eccf28SAndroid Build Coastguard Worker
346*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i32> @rsGetElementAtImpl_int4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
347*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
348*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
349*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i32>, <4 x i32>* %2, align 16, !tbaa !40
350*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i32> %3
351*e1eccf28SAndroid Build Coastguard Worker}
352*e1eccf28SAndroid Build Coastguard Worker
353*e1eccf28SAndroid Build Coastguard Worker!41 = !{!"uint", !15}
354*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_uint(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
355*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
356*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i32*
357*e1eccf28SAndroid Build Coastguard Worker  store i32 %val, i32* %2, align 4, !tbaa !41
358*e1eccf28SAndroid Build Coastguard Worker  ret void
359*e1eccf28SAndroid Build Coastguard Worker}
360*e1eccf28SAndroid Build Coastguard Worker
361*e1eccf28SAndroid Build Coastguard Workerdefine i32 @rsGetElementAtImpl_uint(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
362*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
363*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i32*
364*e1eccf28SAndroid Build Coastguard Worker  %3 = load i32, i32* %2, align 4, !tbaa !41
365*e1eccf28SAndroid Build Coastguard Worker  ret i32 %3
366*e1eccf28SAndroid Build Coastguard Worker}
367*e1eccf28SAndroid Build Coastguard Worker
368*e1eccf28SAndroid Build Coastguard Worker!42 = !{!"uint2", !15}
369*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_uint2(%struct.rs_allocation* nocapture readonly %a, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
370*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
371*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i32>*
372*e1eccf28SAndroid Build Coastguard Worker  store <2 x i32> %val, <2 x i32>* %2, align 8, !tbaa !42
373*e1eccf28SAndroid Build Coastguard Worker  ret void
374*e1eccf28SAndroid Build Coastguard Worker}
375*e1eccf28SAndroid Build Coastguard Worker
376*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i32> @rsGetElementAtImpl_uint2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
377*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
378*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i32>*
379*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i32>, <2 x i32>* %2, align 8, !tbaa !42
380*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i32> %3
381*e1eccf28SAndroid Build Coastguard Worker}
382*e1eccf28SAndroid Build Coastguard Worker
383*e1eccf28SAndroid Build Coastguard Worker!43 = !{!"uint3", !15}
384*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_uint3(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
385*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
386*e1eccf28SAndroid Build Coastguard Worker  %2 = shufflevector <4 x i32> %val, <4 x i32> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
387*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <4 x i32>*
388*e1eccf28SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* %3, align 16, !tbaa !43
389*e1eccf28SAndroid Build Coastguard Worker  ret void
390*e1eccf28SAndroid Build Coastguard Worker}
391*e1eccf28SAndroid Build Coastguard Worker
392*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i32> @rsGetElementAtImpl_uint3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
393*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
394*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
395*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i32>, <4 x i32>* %2, align 8, !tbaa !43
396*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i32> %3, <4 x i32> undef, <3 x i32> <i32 0, i32 1, i32 2>
397*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i32> %4
398*e1eccf28SAndroid Build Coastguard Worker}
399*e1eccf28SAndroid Build Coastguard Worker
400*e1eccf28SAndroid Build Coastguard Worker!44 = !{!"uint4", !15}
401*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_uint4(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
402*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
403*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
404*e1eccf28SAndroid Build Coastguard Worker  store <4 x i32> %val, <4 x i32>* %2, align 16, !tbaa !44
405*e1eccf28SAndroid Build Coastguard Worker  ret void
406*e1eccf28SAndroid Build Coastguard Worker}
407*e1eccf28SAndroid Build Coastguard Worker
408*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i32> @rsGetElementAtImpl_uint4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
409*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
410*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
411*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i32>, <4 x i32>* %2, align 16, !tbaa !44
412*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i32> %3
413*e1eccf28SAndroid Build Coastguard Worker}
414*e1eccf28SAndroid Build Coastguard Worker
415*e1eccf28SAndroid Build Coastguard Worker!45 = !{!"long", !15}
416*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_long(%struct.rs_allocation* nocapture readonly %a, i64 %val, i32 %x, i32 %y, i32 %z) #1 {
417*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
418*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i64*
419*e1eccf28SAndroid Build Coastguard Worker  store i64 %val, i64* %2, align 8, !tbaa !45
420*e1eccf28SAndroid Build Coastguard Worker  ret void
421*e1eccf28SAndroid Build Coastguard Worker}
422*e1eccf28SAndroid Build Coastguard Worker
423*e1eccf28SAndroid Build Coastguard Workerdefine i64 @rsGetElementAtImpl_long(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
424*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
425*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i64*
426*e1eccf28SAndroid Build Coastguard Worker  %3 = load i64, i64* %2, align 8, !tbaa !45
427*e1eccf28SAndroid Build Coastguard Worker  ret i64 %3
428*e1eccf28SAndroid Build Coastguard Worker}
429*e1eccf28SAndroid Build Coastguard Worker
430*e1eccf28SAndroid Build Coastguard Worker!46 = !{!"long2", !15}
431*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_long2(%struct.rs_allocation* nocapture readonly %a, <2 x i64> %val, i32 %x, i32 %y, i32 %z) #1 {
432*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
433*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i64>*
434*e1eccf28SAndroid Build Coastguard Worker  store <2 x i64> %val, <2 x i64>* %2, align 16, !tbaa !46
435*e1eccf28SAndroid Build Coastguard Worker  ret void
436*e1eccf28SAndroid Build Coastguard Worker}
437*e1eccf28SAndroid Build Coastguard Worker
438*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i64> @rsGetElementAtImpl_long2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
439*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
440*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i64>*
441*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i64>, <2 x i64>* %2, align 16, !tbaa !46
442*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i64> %3
443*e1eccf28SAndroid Build Coastguard Worker}
444*e1eccf28SAndroid Build Coastguard Worker
445*e1eccf28SAndroid Build Coastguard Worker!47 = !{!"long3", !15}
446*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_long3(%struct.rs_allocation* nocapture readonly %a, <3 x i64>* %val, i32 %x, i32 %y, i32 %z) #1 {
447*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
448*e1eccf28SAndroid Build Coastguard Worker  %2 = load <3 x i64>, <3 x i64>* %val
449*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <3 x i64> %2, <3 x i64> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
450*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x i64>*
451*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %3, <4 x i64>* %4, align 32, !tbaa !47
452*e1eccf28SAndroid Build Coastguard Worker  ret void
453*e1eccf28SAndroid Build Coastguard Worker}
454*e1eccf28SAndroid Build Coastguard Worker
455*e1eccf28SAndroid Build Coastguard Workerdefine void @rsGetElementAtImpl_long3(<3 x i64>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
456*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
457*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i64>*
458*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i64>, <4 x i64>* %2, align 32
459*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast <3 x i64>* %agg.result to <4 x i64>*
460*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %3, <4 x i64>* %4, align 32, !tbaa !47
461*e1eccf28SAndroid Build Coastguard Worker  ret void
462*e1eccf28SAndroid Build Coastguard Worker}
463*e1eccf28SAndroid Build Coastguard Worker
464*e1eccf28SAndroid Build Coastguard Worker!48 = !{!"long4", !15}
465*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_long4(%struct.rs_allocation* nocapture readonly %a, <4 x i64>* %val, i32 %x, i32 %y, i32 %z) #1 {
466*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
467*e1eccf28SAndroid Build Coastguard Worker  %2 = load <4 x i64>, <4 x i64>* %val
468*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <4 x i64>*
469*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %2, <4 x i64>* %3, align 32, !tbaa !48
470*e1eccf28SAndroid Build Coastguard Worker  ret void
471*e1eccf28SAndroid Build Coastguard Worker}
472*e1eccf28SAndroid Build Coastguard Worker
473*e1eccf28SAndroid Build Coastguard Workerdefine void @rsGetElementAtImpl_long4(<4 x i64>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
474*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
475*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i64>*
476*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i64>, <4 x i64>* %2, align 32, !tbaa !15
477*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %3, <4 x i64>* %agg.result, align 32, !tbaa !48
478*e1eccf28SAndroid Build Coastguard Worker  ret void
479*e1eccf28SAndroid Build Coastguard Worker}
480*e1eccf28SAndroid Build Coastguard Worker
481*e1eccf28SAndroid Build Coastguard Worker!49 = !{!"ulong", !15}
482*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_ulong(%struct.rs_allocation* nocapture readonly %a, i64 %val, i32 %x, i32 %y, i32 %z) #1 {
483*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
484*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i64*
485*e1eccf28SAndroid Build Coastguard Worker  store i64 %val, i64* %2, align 8, !tbaa !49
486*e1eccf28SAndroid Build Coastguard Worker  ret void
487*e1eccf28SAndroid Build Coastguard Worker}
488*e1eccf28SAndroid Build Coastguard Worker
489*e1eccf28SAndroid Build Coastguard Workerdefine i64 @rsGetElementAtImpl_ulong(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
490*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
491*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to i64*
492*e1eccf28SAndroid Build Coastguard Worker  %3 = load i64, i64* %2, align 8, !tbaa !49
493*e1eccf28SAndroid Build Coastguard Worker  ret i64 %3
494*e1eccf28SAndroid Build Coastguard Worker}
495*e1eccf28SAndroid Build Coastguard Worker
496*e1eccf28SAndroid Build Coastguard Worker!50 = !{!"ulong2", !15}
497*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_ulong2(%struct.rs_allocation* nocapture readonly %a, <2 x i64> %val, i32 %x, i32 %y, i32 %z) #1 {
498*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
499*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i64>*
500*e1eccf28SAndroid Build Coastguard Worker  store <2 x i64> %val, <2 x i64>* %2, align 16, !tbaa !50
501*e1eccf28SAndroid Build Coastguard Worker  ret void
502*e1eccf28SAndroid Build Coastguard Worker}
503*e1eccf28SAndroid Build Coastguard Worker
504*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i64> @rsGetElementAtImpl_ulong2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
505*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
506*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i64>*
507*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i64>, <2 x i64>* %2, align 16, !tbaa !50
508*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i64> %3
509*e1eccf28SAndroid Build Coastguard Worker}
510*e1eccf28SAndroid Build Coastguard Worker
511*e1eccf28SAndroid Build Coastguard Worker!51 = !{!"ulong3", !15}
512*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_ulong3(%struct.rs_allocation* nocapture readonly %a, <3 x i64>* %val, i32 %x, i32 %y, i32 %z) #1 {
513*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
514*e1eccf28SAndroid Build Coastguard Worker  %2 = load <3 x i64>, <3 x i64>* %val
515*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <3 x i64> %2, <3 x i64> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
516*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x i64>*
517*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %3, <4 x i64>* %4, align 32, !tbaa !51
518*e1eccf28SAndroid Build Coastguard Worker  ret void
519*e1eccf28SAndroid Build Coastguard Worker}
520*e1eccf28SAndroid Build Coastguard Worker
521*e1eccf28SAndroid Build Coastguard Workerdefine void @rsGetElementAtImpl_ulong3(<3 x i64>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
522*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
523*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i64>*
524*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i64>, <4 x i64>* %2, align 32
525*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast <3 x i64>* %agg.result to <4 x i64>*
526*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %3, <4 x i64>* %4, align 32, !tbaa !51
527*e1eccf28SAndroid Build Coastguard Worker  ret void
528*e1eccf28SAndroid Build Coastguard Worker}
529*e1eccf28SAndroid Build Coastguard Worker
530*e1eccf28SAndroid Build Coastguard Worker!52 = !{!"ulong4", !15}
531*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_ulong4(%struct.rs_allocation* nocapture readonly %a, <4 x i64>* %val, i32 %x, i32 %y, i32 %z) #1 {
532*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
533*e1eccf28SAndroid Build Coastguard Worker  %2 = load <4 x i64>, <4 x i64>* %val
534*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <4 x i64>*
535*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %2, <4 x i64>* %3, align 32, !tbaa !52
536*e1eccf28SAndroid Build Coastguard Worker  ret void
537*e1eccf28SAndroid Build Coastguard Worker}
538*e1eccf28SAndroid Build Coastguard Worker
539*e1eccf28SAndroid Build Coastguard Workerdefine void @rsGetElementAtImpl_ulong4(<4 x i64>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
540*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
541*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i64>*
542*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i64>, <4 x i64>* %2, align 32, !tbaa !15
543*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %3, <4 x i64>* %agg.result, align 32, !tbaa !52
544*e1eccf28SAndroid Build Coastguard Worker  ret void
545*e1eccf28SAndroid Build Coastguard Worker}
546*e1eccf28SAndroid Build Coastguard Worker
547*e1eccf28SAndroid Build Coastguard Worker!53 = !{!"float", !15}
548*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_float(%struct.rs_allocation* nocapture readonly %a, float %val, i32 %x, i32 %y, i32 %z) #1 {
549*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
550*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to float*
551*e1eccf28SAndroid Build Coastguard Worker  store float %val, float* %2, align 4, !tbaa !53
552*e1eccf28SAndroid Build Coastguard Worker  ret void
553*e1eccf28SAndroid Build Coastguard Worker}
554*e1eccf28SAndroid Build Coastguard Worker
555*e1eccf28SAndroid Build Coastguard Workerdefine float @rsGetElementAtImpl_float(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
556*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 4, i32 %x, i32 %y, i32 %z) #2
557*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to float*
558*e1eccf28SAndroid Build Coastguard Worker  %3 = load float, float* %2, align 4, !tbaa !53
559*e1eccf28SAndroid Build Coastguard Worker  ret float %3
560*e1eccf28SAndroid Build Coastguard Worker}
561*e1eccf28SAndroid Build Coastguard Worker
562*e1eccf28SAndroid Build Coastguard Worker!54 = !{!"float2", !15}
563*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_float2(%struct.rs_allocation* nocapture readonly %a, <2 x float> %val, i32 %x, i32 %y, i32 %z) #1 {
564*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
565*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x float>*
566*e1eccf28SAndroid Build Coastguard Worker  store <2 x float> %val, <2 x float>* %2, align 8, !tbaa !54
567*e1eccf28SAndroid Build Coastguard Worker  ret void
568*e1eccf28SAndroid Build Coastguard Worker}
569*e1eccf28SAndroid Build Coastguard Worker
570*e1eccf28SAndroid Build Coastguard Workerdefine <2 x float> @rsGetElementAtImpl_float2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
571*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
572*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x float>*
573*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x float>, <2 x float>* %2, align 8, !tbaa !54
574*e1eccf28SAndroid Build Coastguard Worker  ret <2 x float> %3
575*e1eccf28SAndroid Build Coastguard Worker}
576*e1eccf28SAndroid Build Coastguard Worker
577*e1eccf28SAndroid Build Coastguard Worker!55 = !{!"float3", !15}
578*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_float3(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
579*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
580*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast <4 x i32> %val to <4 x float>
581*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <4 x float> %2, <4 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
582*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x float>*
583*e1eccf28SAndroid Build Coastguard Worker  store <4 x float> %3, <4 x float>* %4, align 16, !tbaa !55
584*e1eccf28SAndroid Build Coastguard Worker  ret void
585*e1eccf28SAndroid Build Coastguard Worker}
586*e1eccf28SAndroid Build Coastguard Worker
587*e1eccf28SAndroid Build Coastguard Workerdefine <3 x float> @rsGetElementAtImpl_float3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
588*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
589*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x float>*
590*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x float>, <4 x float>* %2, align 8, !tbaa !55
591*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x float> %3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
592*e1eccf28SAndroid Build Coastguard Worker  ret <3 x float> %4
593*e1eccf28SAndroid Build Coastguard Worker}
594*e1eccf28SAndroid Build Coastguard Worker
595*e1eccf28SAndroid Build Coastguard Worker!56 = !{!"float4", !15}
596*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_float4(%struct.rs_allocation* nocapture readonly %a, <4 x float> %val, i32 %x, i32 %y, i32 %z) #1 {
597*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
598*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x float>*
599*e1eccf28SAndroid Build Coastguard Worker  store <4 x float> %val, <4 x float>* %2, align 16, !tbaa !56
600*e1eccf28SAndroid Build Coastguard Worker  ret void
601*e1eccf28SAndroid Build Coastguard Worker}
602*e1eccf28SAndroid Build Coastguard Worker
603*e1eccf28SAndroid Build Coastguard Workerdefine <4 x float> @rsGetElementAtImpl_float4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
604*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
605*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x float>*
606*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x float>, <4 x float>* %2, align 16, !tbaa !56
607*e1eccf28SAndroid Build Coastguard Worker  ret <4 x float> %3
608*e1eccf28SAndroid Build Coastguard Worker}
609*e1eccf28SAndroid Build Coastguard Worker
610*e1eccf28SAndroid Build Coastguard Worker!57 = !{!"double", !15}
611*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_double(%struct.rs_allocation* nocapture readonly %a, double %val, i32 %x, i32 %y, i32 %z) #1 {
612*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
613*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to double*
614*e1eccf28SAndroid Build Coastguard Worker  store double %val, double* %2, align 8, !tbaa !57
615*e1eccf28SAndroid Build Coastguard Worker  ret void
616*e1eccf28SAndroid Build Coastguard Worker}
617*e1eccf28SAndroid Build Coastguard Worker
618*e1eccf28SAndroid Build Coastguard Workerdefine double @rsGetElementAtImpl_double(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
619*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 8, i32 %x, i32 %y, i32 %z) #2
620*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to double*
621*e1eccf28SAndroid Build Coastguard Worker  %3 = load double, double* %2, align 8, !tbaa !57
622*e1eccf28SAndroid Build Coastguard Worker  ret double %3
623*e1eccf28SAndroid Build Coastguard Worker}
624*e1eccf28SAndroid Build Coastguard Worker
625*e1eccf28SAndroid Build Coastguard Worker!58 = !{!"double2", !15}
626*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_double2(%struct.rs_allocation* nocapture readonly %a, <2 x double> %val, i32 %x, i32 %y, i32 %z) #1 {
627*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
628*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x double>*
629*e1eccf28SAndroid Build Coastguard Worker  store <2 x double> %val, <2 x double>* %2, align 16, !tbaa !58
630*e1eccf28SAndroid Build Coastguard Worker  ret void
631*e1eccf28SAndroid Build Coastguard Worker}
632*e1eccf28SAndroid Build Coastguard Worker
633*e1eccf28SAndroid Build Coastguard Workerdefine <2 x double> @rsGetElementAtImpl_double2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
634*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 16, i32 %x, i32 %y, i32 %z) #2
635*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x double>*
636*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x double>, <2 x double>* %2, align 16, !tbaa !58
637*e1eccf28SAndroid Build Coastguard Worker  ret <2 x double> %3
638*e1eccf28SAndroid Build Coastguard Worker}
639*e1eccf28SAndroid Build Coastguard Worker
640*e1eccf28SAndroid Build Coastguard Worker!59 = !{!"double3", !15}
641*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_double3(%struct.rs_allocation* nocapture readonly %a, <3 x double>* %val, i32 %x, i32 %y, i32 %z) #1 {
642*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
643*e1eccf28SAndroid Build Coastguard Worker  %2 = load <3 x double>, <3 x double>* %val
644*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <3 x double> %2, <3 x double> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
645*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x double>*
646*e1eccf28SAndroid Build Coastguard Worker  store <4 x double> %3, <4 x double>* %4, align 32, !tbaa !59
647*e1eccf28SAndroid Build Coastguard Worker  ret void
648*e1eccf28SAndroid Build Coastguard Worker}
649*e1eccf28SAndroid Build Coastguard Worker
650*e1eccf28SAndroid Build Coastguard Worker
651*e1eccf28SAndroid Build Coastguard Workerdefine void @rsGetElementAtImpl_double3(<3 x double>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
652*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
653*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x double>*
654*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x double>, <4 x double>* %2, align 32
655*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast <3 x double>* %agg.result to <4 x double>*
656*e1eccf28SAndroid Build Coastguard Worker  store <4 x double> %3, <4 x double>* %4, align 32, !tbaa !59
657*e1eccf28SAndroid Build Coastguard Worker  ret void
658*e1eccf28SAndroid Build Coastguard Worker}
659*e1eccf28SAndroid Build Coastguard Worker
660*e1eccf28SAndroid Build Coastguard Worker!60 = !{!"double4", !15}
661*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_double4(%struct.rs_allocation* nocapture readonly %a, <4 x double>* %val, i32 %x, i32 %y, i32 %z) #1 {
662*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
663*e1eccf28SAndroid Build Coastguard Worker  %2 = load <4 x double>, <4 x double>* %val
664*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <4 x double>*
665*e1eccf28SAndroid Build Coastguard Worker  store <4 x double> %2, <4 x double>* %3, align 32, !tbaa !60
666*e1eccf28SAndroid Build Coastguard Worker  ret void
667*e1eccf28SAndroid Build Coastguard Worker}
668*e1eccf28SAndroid Build Coastguard Workerdefine void @rsGetElementAtImpl_double4(<4 x double>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
669*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a, i32 32, i32 %x, i32 %y, i32 %z) #2
670*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x double>*
671*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x double>, <4 x double>* %2, align 32, !tbaa !15
672*e1eccf28SAndroid Build Coastguard Worker  store <4 x double> %3, <4 x double>* %agg.result, align 32, !tbaa !60
673*e1eccf28SAndroid Build Coastguard Worker  ret void
674*e1eccf28SAndroid Build Coastguard Worker}
675*e1eccf28SAndroid Build Coastguard Worker
676*e1eccf28SAndroid Build Coastguard Worker!61 = !{!"half", !15}
677*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_half(%struct.rs_allocation* nocapture readonly %a.coerce, half %val, i32 %x, i32 %y, i32 %z) #1 {
678*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a.coerce, i32 2, i32 %x, i32 %y, i32 %z) #2
679*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to half*
680*e1eccf28SAndroid Build Coastguard Worker  store half %val, half* %2, align 2, !tbaa !61
681*e1eccf28SAndroid Build Coastguard Worker  ret void
682*e1eccf28SAndroid Build Coastguard Worker}
683*e1eccf28SAndroid Build Coastguard Worker
684*e1eccf28SAndroid Build Coastguard Workerdefine half @rsGetElementAtImpl_half(%struct.rs_allocation* nocapture readonly %a.coerce, i32 %x, i32 %y, i32 %z) #0 {
685*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a.coerce, i32 2, i32 %x, i32 %y, i32 %z) #2
686*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to half*
687*e1eccf28SAndroid Build Coastguard Worker  %3 = load half, half* %2, align 2, !tbaa !61
688*e1eccf28SAndroid Build Coastguard Worker  ret half %3
689*e1eccf28SAndroid Build Coastguard Worker}
690*e1eccf28SAndroid Build Coastguard Worker
691*e1eccf28SAndroid Build Coastguard Worker!62 = !{!"half2", !15}
692*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_half2(%struct.rs_allocation* nocapture readonly %a.coerce, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
693*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a.coerce, i32 4, i32 %x, i32 %y, i32 %z) #2
694*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x half>*
695*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <2 x half>
696*e1eccf28SAndroid Build Coastguard Worker  store <2 x half> %3, <2 x half>* %2, align 4, !tbaa !62
697*e1eccf28SAndroid Build Coastguard Worker  ret void
698*e1eccf28SAndroid Build Coastguard Worker}
699*e1eccf28SAndroid Build Coastguard Worker
700*e1eccf28SAndroid Build Coastguard Workerdefine <2 x half> @rsGetElementAtImpl_half2(%struct.rs_allocation* nocapture readonly %a.coerce, i32 %x, i32 %y, i32 %z) #0 {
701*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a.coerce, i32 4, i32 %x, i32 %y, i32 %z) #2
702*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x half>*
703*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x half>, <2 x half>* %2, align 4, !tbaa !62
704*e1eccf28SAndroid Build Coastguard Worker  ret <2 x half> %3
705*e1eccf28SAndroid Build Coastguard Worker}
706*e1eccf28SAndroid Build Coastguard Worker
707*e1eccf28SAndroid Build Coastguard Worker!63 = !{!"half3", !15}
708*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_half3(%struct.rs_allocation* nocapture readonly %a.coerce, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
709*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a.coerce, i32 8, i32 %x, i32 %y, i32 %z) #2
710*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast <2 x i32> %val to <4 x half>
711*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <4 x half> %2, <4 x half> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 undef>
712*e1eccf28SAndroid Build Coastguard Worker  %4 = bitcast i8* %1 to <4 x half>*
713*e1eccf28SAndroid Build Coastguard Worker  store <4 x half> %3, <4 x half>* %4, align 8, !tbaa !63
714*e1eccf28SAndroid Build Coastguard Worker  ret void
715*e1eccf28SAndroid Build Coastguard Worker}
716*e1eccf28SAndroid Build Coastguard Worker
717*e1eccf28SAndroid Build Coastguard Workerdefine <3 x half> @rsGetElementAtImpl_half3(%struct.rs_allocation* nocapture readonly %a.coerce, i32 %x, i32 %y, i32 %z) #1 {
718*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a.coerce, i32 8, i32 %x, i32 %y, i32 %z) #2
719*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x half>*
720*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x half>, <4 x half>* %2, align 8, !tbaa !63
721*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x half> %3, <4 x half> undef, <3 x i32> <i32 0, i32 1, i32 2>
722*e1eccf28SAndroid Build Coastguard Worker  ret <3 x half> %4
723*e1eccf28SAndroid Build Coastguard Worker}
724*e1eccf28SAndroid Build Coastguard Worker
725*e1eccf28SAndroid Build Coastguard Worker!64 = !{!"half4", !15}
726*e1eccf28SAndroid Build Coastguard Workerdefine void @rsSetElementAtImpl_half4(%struct.rs_allocation* nocapture readonly %a.coerce, <4 x half> %val, i32 %x, i32 %y, i32 %z) #1 {
727*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a.coerce, i32 8, i32 %x, i32 %y, i32 %z) #2
728*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x half>*
729*e1eccf28SAndroid Build Coastguard Worker  store <4 x half> %val, <4 x half>* %2, align 8, !tbaa !64
730*e1eccf28SAndroid Build Coastguard Worker  ret void
731*e1eccf28SAndroid Build Coastguard Worker}
732*e1eccf28SAndroid Build Coastguard Worker
733*e1eccf28SAndroid Build Coastguard Workerdefine <4 x half> @rsGetElementAtImpl_half4(%struct.rs_allocation* nocapture readonly %a.coerce, i32 %x, i32 %y, i32 %z) #0 {
734*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffset(%struct.rs_allocation* %a.coerce, i32 8, i32 %x, i32 %y, i32 %z) #2
735*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x half>*
736*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x half>, <4 x half>* %2, align 8, !tbaa !64
737*e1eccf28SAndroid Build Coastguard Worker  ret <4 x half> %3
738*e1eccf28SAndroid Build Coastguard Worker}
739*e1eccf28SAndroid Build Coastguard Worker
740*e1eccf28SAndroid Build Coastguard Worker
741*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVLoadXImpl_long4(<4 x i64>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
742*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
743*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i64>*
744*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i64>, <4 x i64>* %2, align 8
745*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %3, <4 x i64>* %agg.result
746*e1eccf28SAndroid Build Coastguard Worker  ret void
747*e1eccf28SAndroid Build Coastguard Worker}
748*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVLoadXImpl_long3(<3 x i64>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
749*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
750*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i64>*
751*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x i64>, <3 x i64>* %2, align 8
752*e1eccf28SAndroid Build Coastguard Worker  store <3 x i64> %3, <3 x i64>* %agg.result
753*e1eccf28SAndroid Build Coastguard Worker  ret void
754*e1eccf28SAndroid Build Coastguard Worker}
755*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i64> @__rsAllocationVLoadXImpl_long2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
756*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
757*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i64>*
758*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i64>, <2 x i64>* %2, align 8
759*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i64> %3
760*e1eccf28SAndroid Build Coastguard Worker}
761*e1eccf28SAndroid Build Coastguard Worker
762*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVLoadXImpl_ulong4(<4 x i64>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
763*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
764*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i64>*
765*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i64>, <4 x i64>* %2, align 8
766*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %3, <4 x i64>* %agg.result
767*e1eccf28SAndroid Build Coastguard Worker  ret void
768*e1eccf28SAndroid Build Coastguard Worker}
769*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVLoadXImpl_ulong3(<3 x i64>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
770*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
771*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i64>*
772*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x i64>, <3 x i64>* %2, align 8
773*e1eccf28SAndroid Build Coastguard Worker  store <3 x i64> %3, <3 x i64>* %agg.result
774*e1eccf28SAndroid Build Coastguard Worker  ret void
775*e1eccf28SAndroid Build Coastguard Worker}
776*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i64> @__rsAllocationVLoadXImpl_ulong2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
777*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
778*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i64>*
779*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i64>, <2 x i64>* %2, align 8
780*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i64> %3
781*e1eccf28SAndroid Build Coastguard Worker}
782*e1eccf28SAndroid Build Coastguard Worker
783*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i32> @__rsAllocationVLoadXImpl_int4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
784*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
785*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
786*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i32>, <4 x i32>* %2, align 4
787*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i32> %3
788*e1eccf28SAndroid Build Coastguard Worker}
789*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i32> @__rsAllocationVLoadXImpl_int3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
790*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
791*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i32>*
792*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x i32>, <3 x i32>* %2, align 4
793*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i32> %3
794*e1eccf28SAndroid Build Coastguard Worker}
795*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i32> @__rsAllocationVLoadXImpl_int2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
796*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
797*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i32>*
798*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i32>, <2 x i32>* %2, align 4
799*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i32> %3
800*e1eccf28SAndroid Build Coastguard Worker}
801*e1eccf28SAndroid Build Coastguard Worker
802*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i32> @__rsAllocationVLoadXImpl_uint4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
803*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
804*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
805*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i32>, <4 x i32>* %2, align 4
806*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i32> %3
807*e1eccf28SAndroid Build Coastguard Worker}
808*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i32> @__rsAllocationVLoadXImpl_uint3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
809*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
810*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i32>*
811*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x i32>, <3 x i32>* %2, align 4
812*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i32> %3
813*e1eccf28SAndroid Build Coastguard Worker}
814*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i32> @__rsAllocationVLoadXImpl_uint2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
815*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
816*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i32>*
817*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i32>, <2 x i32>* %2, align 4
818*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i32> %3
819*e1eccf28SAndroid Build Coastguard Worker}
820*e1eccf28SAndroid Build Coastguard Worker
821*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i16> @__rsAllocationVLoadXImpl_short4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
822*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
823*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
824*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i16>, <4 x i16>* %2, align 2
825*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i16> %3
826*e1eccf28SAndroid Build Coastguard Worker}
827*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i16> @__rsAllocationVLoadXImpl_short3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
828*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
829*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i16>*
830*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x i16>, <3 x i16>* %2, align 2
831*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i16> %3
832*e1eccf28SAndroid Build Coastguard Worker}
833*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i16> @__rsAllocationVLoadXImpl_short2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
834*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
835*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i16>*
836*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i16>, <2 x i16>* %2, align 2
837*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i16> %3
838*e1eccf28SAndroid Build Coastguard Worker}
839*e1eccf28SAndroid Build Coastguard Worker
840*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i16> @__rsAllocationVLoadXImpl_ushort4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
841*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
842*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
843*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i16>, <4 x i16>* %2, align 2
844*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i16> %3
845*e1eccf28SAndroid Build Coastguard Worker}
846*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i16> @__rsAllocationVLoadXImpl_ushort3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
847*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
848*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i16>*
849*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x i16>, <3 x i16>* %2, align 2
850*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i16> %3
851*e1eccf28SAndroid Build Coastguard Worker}
852*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i16> @__rsAllocationVLoadXImpl_ushort2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
853*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
854*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i16>*
855*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i16>, <2 x i16>* %2, align 2
856*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i16> %3
857*e1eccf28SAndroid Build Coastguard Worker}
858*e1eccf28SAndroid Build Coastguard Worker
859*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i8> @__rsAllocationVLoadXImpl_char4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
860*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
861*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
862*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i8>, <4 x i8>* %2, align 1
863*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i8> %3
864*e1eccf28SAndroid Build Coastguard Worker}
865*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i8> @__rsAllocationVLoadXImpl_char3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
866*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
867*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i8>*
868*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x i8>, <3 x i8>* %2, align 1
869*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i8> %3
870*e1eccf28SAndroid Build Coastguard Worker}
871*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i8> @__rsAllocationVLoadXImpl_char2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
872*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
873*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i8>*
874*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i8>, <2 x i8>* %2, align 1
875*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i8> %3
876*e1eccf28SAndroid Build Coastguard Worker}
877*e1eccf28SAndroid Build Coastguard Worker
878*e1eccf28SAndroid Build Coastguard Workerdefine <4 x i8> @__rsAllocationVLoadXImpl_uchar4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
879*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
880*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
881*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x i8>, <4 x i8>* %2, align 1
882*e1eccf28SAndroid Build Coastguard Worker  ret <4 x i8> %3
883*e1eccf28SAndroid Build Coastguard Worker}
884*e1eccf28SAndroid Build Coastguard Workerdefine <3 x i8> @__rsAllocationVLoadXImpl_uchar3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
885*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
886*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i8>*
887*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x i8>, <3 x i8>* %2, align 1
888*e1eccf28SAndroid Build Coastguard Worker  ret <3 x i8> %3
889*e1eccf28SAndroid Build Coastguard Worker}
890*e1eccf28SAndroid Build Coastguard Workerdefine <2 x i8> @__rsAllocationVLoadXImpl_uchar2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
891*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
892*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i8>*
893*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x i8>, <2 x i8>* %2, align 1
894*e1eccf28SAndroid Build Coastguard Worker  ret <2 x i8> %3
895*e1eccf28SAndroid Build Coastguard Worker}
896*e1eccf28SAndroid Build Coastguard Worker
897*e1eccf28SAndroid Build Coastguard Workerdefine <4 x float> @__rsAllocationVLoadXImpl_float4(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
898*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
899*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x float>*
900*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x float>, <4 x float>* %2, align 4
901*e1eccf28SAndroid Build Coastguard Worker  ret <4 x float> %3
902*e1eccf28SAndroid Build Coastguard Worker}
903*e1eccf28SAndroid Build Coastguard Workerdefine <3 x float> @__rsAllocationVLoadXImpl_float3(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
904*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
905*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x float>*
906*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x float>, <3 x float>* %2, align 4
907*e1eccf28SAndroid Build Coastguard Worker  ret <3 x float> %3
908*e1eccf28SAndroid Build Coastguard Worker}
909*e1eccf28SAndroid Build Coastguard Workerdefine <2 x float> @__rsAllocationVLoadXImpl_float2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
910*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
911*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x float>*
912*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x float>, <2 x float>* %2, align 4
913*e1eccf28SAndroid Build Coastguard Worker  ret <2 x float> %3
914*e1eccf28SAndroid Build Coastguard Worker}
915*e1eccf28SAndroid Build Coastguard Worker
916*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVLoadXImpl_double4(<4 x double>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
917*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
918*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x double>*
919*e1eccf28SAndroid Build Coastguard Worker  %3 = load <4 x double>, <4 x double>* %2, align 8
920*e1eccf28SAndroid Build Coastguard Worker  store <4 x double> %3, <4 x double>* %agg.result
921*e1eccf28SAndroid Build Coastguard Worker  ret void
922*e1eccf28SAndroid Build Coastguard Worker}
923*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVLoadXImpl_double3(<3 x double>* noalias nocapture sret %agg.result, %struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #1 {
924*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
925*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x double>*
926*e1eccf28SAndroid Build Coastguard Worker  %3 = load <3 x double>, <3 x double>* %2, align 8
927*e1eccf28SAndroid Build Coastguard Worker  store <3 x double> %3, <3 x double>* %agg.result
928*e1eccf28SAndroid Build Coastguard Worker  ret void
929*e1eccf28SAndroid Build Coastguard Worker}
930*e1eccf28SAndroid Build Coastguard Workerdefine <2 x double> @__rsAllocationVLoadXImpl_double2(%struct.rs_allocation* nocapture readonly %a, i32 %x, i32 %y, i32 %z) #0 {
931*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
932*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x double>*
933*e1eccf28SAndroid Build Coastguard Worker  %3 = load <2 x double>, <2 x double>* %2, align 8
934*e1eccf28SAndroid Build Coastguard Worker  ret <2 x double> %3
935*e1eccf28SAndroid Build Coastguard Worker}
936*e1eccf28SAndroid Build Coastguard Worker
937*e1eccf28SAndroid Build Coastguard Worker
938*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_long4(%struct.rs_allocation* nocapture readonly %a, <4 x i64>* %val, i32 %x, i32 %y, i32 %z) #1 {
939*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
940*e1eccf28SAndroid Build Coastguard Worker  %2 = load <4 x i64>, <4 x i64>* %val
941*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <4 x i64>*
942*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %2, <4 x i64>* %3, align 8
943*e1eccf28SAndroid Build Coastguard Worker  ret void
944*e1eccf28SAndroid Build Coastguard Worker}
945*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_long3(%struct.rs_allocation* nocapture readonly %a, <3 x i64>* %val, i32 %x, i32 %y, i32 %z) #1 {
946*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
947*e1eccf28SAndroid Build Coastguard Worker  %2 = load <3 x i64>, <3 x i64>* %val
948*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <3 x i64>*
949*e1eccf28SAndroid Build Coastguard Worker  store <3 x i64> %2, <3 x i64>* %3, align 8
950*e1eccf28SAndroid Build Coastguard Worker  ret void
951*e1eccf28SAndroid Build Coastguard Worker}
952*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_long2(%struct.rs_allocation* nocapture readonly %a, <2 x i64> %val, i32 %x, i32 %y, i32 %z) #1 {
953*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
954*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i64>*
955*e1eccf28SAndroid Build Coastguard Worker  store <2 x i64> %val, <2 x i64>* %2, align 8
956*e1eccf28SAndroid Build Coastguard Worker  ret void
957*e1eccf28SAndroid Build Coastguard Worker}
958*e1eccf28SAndroid Build Coastguard Worker
959*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_ulong4(%struct.rs_allocation* nocapture readonly %a, <4 x i64>* %val, i32 %x, i32 %y, i32 %z) #1 {
960*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
961*e1eccf28SAndroid Build Coastguard Worker  %2 = load <4 x i64>, <4 x i64>* %val
962*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <4 x i64>*
963*e1eccf28SAndroid Build Coastguard Worker  store <4 x i64> %2, <4 x i64>* %3, align 8
964*e1eccf28SAndroid Build Coastguard Worker  ret void
965*e1eccf28SAndroid Build Coastguard Worker}
966*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_ulong3(%struct.rs_allocation* nocapture readonly %a, <3 x i64>* %val, i32 %x, i32 %y, i32 %z) #1 {
967*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
968*e1eccf28SAndroid Build Coastguard Worker  %2 = load <3 x i64>, <3 x i64>* %val
969*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <3 x i64>*
970*e1eccf28SAndroid Build Coastguard Worker  store <3 x i64> %2, <3 x i64>* %3, align 8
971*e1eccf28SAndroid Build Coastguard Worker  ret void
972*e1eccf28SAndroid Build Coastguard Worker}
973*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_ulong2(%struct.rs_allocation* nocapture readonly %a, <2 x i64> %val, i32 %x, i32 %y, i32 %z) #1 {
974*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
975*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i64>*
976*e1eccf28SAndroid Build Coastguard Worker  store <2 x i64> %val, <2 x i64>* %2, align 8
977*e1eccf28SAndroid Build Coastguard Worker  ret void
978*e1eccf28SAndroid Build Coastguard Worker}
979*e1eccf28SAndroid Build Coastguard Worker
980*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_int4(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
981*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
982*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
983*e1eccf28SAndroid Build Coastguard Worker  store <4 x i32> %val, <4 x i32>* %2, align 4
984*e1eccf28SAndroid Build Coastguard Worker  ret void
985*e1eccf28SAndroid Build Coastguard Worker}
986*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_int3(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
987*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
988*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i32>*
989*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <4 x i32> %val, <4 x i32> undef, <3 x i32> <i32 0, i32 1, i32 2>
990*e1eccf28SAndroid Build Coastguard Worker  store <3 x i32> %3, <3 x i32>* %2, align 4
991*e1eccf28SAndroid Build Coastguard Worker  ret void
992*e1eccf28SAndroid Build Coastguard Worker}
993*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_int2(%struct.rs_allocation* nocapture readonly %a, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
994*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
995*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i32>*
996*e1eccf28SAndroid Build Coastguard Worker  store <2 x i32> %val, <2 x i32>* %2, align 4
997*e1eccf28SAndroid Build Coastguard Worker  ret void
998*e1eccf28SAndroid Build Coastguard Worker}
999*e1eccf28SAndroid Build Coastguard Worker
1000*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_uint4(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
1001*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1002*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i32>*
1003*e1eccf28SAndroid Build Coastguard Worker  store <4 x i32> %val, <4 x i32>* %2, align 4
1004*e1eccf28SAndroid Build Coastguard Worker  ret void
1005*e1eccf28SAndroid Build Coastguard Worker}
1006*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_uint3(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
1007*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1008*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i32>*
1009*e1eccf28SAndroid Build Coastguard Worker  %3 = shufflevector <4 x i32> %val, <4 x i32> undef, <3 x i32> <i32 0, i32 1, i32 2>
1010*e1eccf28SAndroid Build Coastguard Worker  store <3 x i32> %3, <3 x i32>* %2, align 4
1011*e1eccf28SAndroid Build Coastguard Worker  ret void
1012*e1eccf28SAndroid Build Coastguard Worker}
1013*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_uint2(%struct.rs_allocation* nocapture readonly %a, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
1014*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1015*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i32>*
1016*e1eccf28SAndroid Build Coastguard Worker  store <2 x i32> %val, <2 x i32>* %2, align 4
1017*e1eccf28SAndroid Build Coastguard Worker  ret void
1018*e1eccf28SAndroid Build Coastguard Worker}
1019*e1eccf28SAndroid Build Coastguard Worker
1020*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_short4(%struct.rs_allocation* nocapture readonly %a, <4 x i16> %val, i32 %x, i32 %y, i32 %z) #1 {
1021*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1022*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
1023*e1eccf28SAndroid Build Coastguard Worker  store <4 x i16> %val, <4 x i16>* %2, align 2
1024*e1eccf28SAndroid Build Coastguard Worker  ret void
1025*e1eccf28SAndroid Build Coastguard Worker}
1026*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_short3(%struct.rs_allocation* nocapture readonly %a, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
1027*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1028*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i16>*
1029*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast <2 x i32> %val to <4 x i16>
1030*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i16> %3, <4 x i16> undef, <3 x i32> <i32 0, i32 1, i32 2>
1031*e1eccf28SAndroid Build Coastguard Worker  store <3 x i16> %4, <3 x i16>* %2, align 2
1032*e1eccf28SAndroid Build Coastguard Worker  ret void
1033*e1eccf28SAndroid Build Coastguard Worker}
1034*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_short2(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
1035*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1036*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i16>*
1037*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <2 x i16>
1038*e1eccf28SAndroid Build Coastguard Worker  store <2 x i16> %3, <2 x i16>* %2, align 2
1039*e1eccf28SAndroid Build Coastguard Worker  ret void
1040*e1eccf28SAndroid Build Coastguard Worker}
1041*e1eccf28SAndroid Build Coastguard Worker
1042*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_ushort4(%struct.rs_allocation* nocapture readonly %a, <4 x i16> %val, i32 %x, i32 %y, i32 %z) #1 {
1043*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1044*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i16>*
1045*e1eccf28SAndroid Build Coastguard Worker  store <4 x i16> %val, <4 x i16>* %2, align 2
1046*e1eccf28SAndroid Build Coastguard Worker  ret void
1047*e1eccf28SAndroid Build Coastguard Worker}
1048*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_ushort3(%struct.rs_allocation* nocapture readonly %a, <2 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
1049*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1050*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i16>*
1051*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast <2 x i32> %val to <4 x i16>
1052*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i16> %3, <4 x i16> undef, <3 x i32> <i32 0, i32 1, i32 2>
1053*e1eccf28SAndroid Build Coastguard Worker  store <3 x i16> %4, <3 x i16>* %2, align 2
1054*e1eccf28SAndroid Build Coastguard Worker  ret void
1055*e1eccf28SAndroid Build Coastguard Worker}
1056*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_ushort2(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
1057*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1058*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i16>*
1059*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <2 x i16>
1060*e1eccf28SAndroid Build Coastguard Worker  store <2 x i16> %3, <2 x i16>* %2, align 2
1061*e1eccf28SAndroid Build Coastguard Worker  ret void
1062*e1eccf28SAndroid Build Coastguard Worker}
1063*e1eccf28SAndroid Build Coastguard Worker
1064*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_char4(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
1065*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1066*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
1067*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <4 x i8>
1068*e1eccf28SAndroid Build Coastguard Worker  store <4 x i8> %3, <4 x i8>* %2, align 1
1069*e1eccf28SAndroid Build Coastguard Worker  ret void
1070*e1eccf28SAndroid Build Coastguard Worker}
1071*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_char3(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
1072*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1073*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i8>*
1074*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <4 x i8>
1075*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i8> %3, <4 x i8> undef, <3 x i32> <i32 0, i32 1, i32 2>
1076*e1eccf28SAndroid Build Coastguard Worker  store <3 x i8> %4, <3 x i8>* %2, align 1
1077*e1eccf28SAndroid Build Coastguard Worker  ret void
1078*e1eccf28SAndroid Build Coastguard Worker}
1079*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_char2(%struct.rs_allocation* nocapture readonly %a, i16 %val, i32 %x, i32 %y, i32 %z) #1 {
1080*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1081*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i8>*
1082*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i16 %val to <2 x i8>
1083*e1eccf28SAndroid Build Coastguard Worker  store <2 x i8> %3, <2 x i8>* %2, align 8
1084*e1eccf28SAndroid Build Coastguard Worker  ret void
1085*e1eccf28SAndroid Build Coastguard Worker}
1086*e1eccf28SAndroid Build Coastguard Worker
1087*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_uchar4(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
1088*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1089*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x i8>*
1090*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <4 x i8>
1091*e1eccf28SAndroid Build Coastguard Worker  store <4 x i8> %3, <4 x i8>* %2, align 1
1092*e1eccf28SAndroid Build Coastguard Worker  ret void
1093*e1eccf28SAndroid Build Coastguard Worker}
1094*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_uchar3(%struct.rs_allocation* nocapture readonly %a, i32 %val, i32 %x, i32 %y, i32 %z) #1 {
1095*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1096*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x i8>*
1097*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i32 %val to <4 x i8>
1098*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x i8> %3, <4 x i8> undef, <3 x i32> <i32 0, i32 1, i32 2>
1099*e1eccf28SAndroid Build Coastguard Worker  store <3 x i8> %4, <3 x i8>* %2, align 1
1100*e1eccf28SAndroid Build Coastguard Worker  ret void
1101*e1eccf28SAndroid Build Coastguard Worker}
1102*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_uchar2(%struct.rs_allocation* nocapture readonly %a, i16 %val, i32 %x, i32 %y, i32 %z) #1 {
1103*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1104*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x i8>*
1105*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i16 %val to <2 x i8>
1106*e1eccf28SAndroid Build Coastguard Worker  store <2 x i8> %3, <2 x i8>* %2, align 8
1107*e1eccf28SAndroid Build Coastguard Worker  ret void
1108*e1eccf28SAndroid Build Coastguard Worker}
1109*e1eccf28SAndroid Build Coastguard Worker
1110*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_float4(%struct.rs_allocation* nocapture readonly %a, <4 x float> %val, i32 %x, i32 %y, i32 %z) #1 {
1111*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1112*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <4 x float>*
1113*e1eccf28SAndroid Build Coastguard Worker  store <4 x float> %val, <4 x float>* %2, align 4
1114*e1eccf28SAndroid Build Coastguard Worker  ret void
1115*e1eccf28SAndroid Build Coastguard Worker}
1116*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_float3(%struct.rs_allocation* nocapture readonly %a, <4 x i32> %val, i32 %x, i32 %y, i32 %z) #1 {
1117*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1118*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <3 x float>*
1119*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast <4 x i32> %val to <4 x float>
1120*e1eccf28SAndroid Build Coastguard Worker  %4 = shufflevector <4 x float> %3, <4 x float> undef, <3 x i32> <i32 0, i32 1, i32 2>
1121*e1eccf28SAndroid Build Coastguard Worker  store <3 x float> %4, <3 x float>* %2, align 4
1122*e1eccf28SAndroid Build Coastguard Worker  ret void
1123*e1eccf28SAndroid Build Coastguard Worker}
1124*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_float2(%struct.rs_allocation* nocapture readonly %a, <2 x float> %val, i32 %x, i32 %y, i32 %z) #1 {
1125*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1126*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x float>*
1127*e1eccf28SAndroid Build Coastguard Worker  store <2 x float> %val, <2 x float>* %2, align 4
1128*e1eccf28SAndroid Build Coastguard Worker  ret void
1129*e1eccf28SAndroid Build Coastguard Worker}
1130*e1eccf28SAndroid Build Coastguard Worker
1131*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_double4(%struct.rs_allocation* nocapture readonly %a, <4 x double>* %val, i32 %x, i32 %y, i32 %z) #1 {
1132*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1133*e1eccf28SAndroid Build Coastguard Worker  %2 = load <4 x double>, <4 x double>* %val
1134*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <4 x double>*
1135*e1eccf28SAndroid Build Coastguard Worker  store <4 x double> %2, <4 x double>* %3, align 8
1136*e1eccf28SAndroid Build Coastguard Worker  ret void
1137*e1eccf28SAndroid Build Coastguard Worker}
1138*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_double3(%struct.rs_allocation* nocapture readonly %a, <3 x double>* %val, i32 %x, i32 %y, i32 %z) #1 {
1139*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1140*e1eccf28SAndroid Build Coastguard Worker  %2 = load <3 x double>, <3 x double>* %val
1141*e1eccf28SAndroid Build Coastguard Worker  %3 = bitcast i8* %1 to <3 x double>*
1142*e1eccf28SAndroid Build Coastguard Worker  store <3 x double> %2, <3 x double>* %3, align 8
1143*e1eccf28SAndroid Build Coastguard Worker  ret void
1144*e1eccf28SAndroid Build Coastguard Worker}
1145*e1eccf28SAndroid Build Coastguard Workerdefine void @__rsAllocationVStoreXImpl_double2(%struct.rs_allocation* nocapture readonly %a, <2 x double> %val, i32 %x, i32 %y, i32 %z) #1 {
1146*e1eccf28SAndroid Build Coastguard Worker  %1 = tail call i8* @rsOffsetNs(%struct.rs_allocation* %a, i32 %x, i32 %y, i32 %z) #2
1147*e1eccf28SAndroid Build Coastguard Worker  %2 = bitcast i8* %1 to <2 x double>*
1148*e1eccf28SAndroid Build Coastguard Worker  store <2 x double> %val, <2 x double>* %2, align 8
1149*e1eccf28SAndroid Build Coastguard Worker  ret void
1150*e1eccf28SAndroid Build Coastguard Worker}
1151*e1eccf28SAndroid Build Coastguard Worker
1152*e1eccf28SAndroid Build Coastguard Worker
1153*e1eccf28SAndroid Build Coastguard Workerattributes #0 = { nounwind readonly "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
1154*e1eccf28SAndroid Build Coastguard Workerattributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
1155*e1eccf28SAndroid Build Coastguard Workerattributes #2 = { nobuiltin }
1156*e1eccf28SAndroid Build Coastguard Worker
1157