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