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