1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=arm64 -aarch64-neon-syntax=apple | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtas_2s(<2 x float> %A) nounwind { 4*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtas_2s: 5*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 6*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtas.2s v0, v0 7*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 8*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.fcvtas.v2i32.v2f32(<2 x float> %A) 9*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 10*9880d681SAndroid Build Coastguard Worker} 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtas_4s(<4 x float> %A) nounwind { 13*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtas_4s: 14*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 15*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtas.4s v0, v0 16*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 17*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.fcvtas.v4i32.v4f32(<4 x float> %A) 18*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtas_2d(<2 x double> %A) nounwind { 22*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtas_2d: 23*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 24*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtas.2d v0, v0 25*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 26*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.fcvtas.v2i64.v2f64(<2 x double> %A) 27*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 28*9880d681SAndroid Build Coastguard Worker} 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.fcvtas.v2i32.v2f32(<2 x float>) nounwind readnone 31*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.fcvtas.v4i32.v4f32(<4 x float>) nounwind readnone 32*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.fcvtas.v2i64.v2f64(<2 x double>) nounwind readnone 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtau_2s(<2 x float> %A) nounwind { 35*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtau_2s: 36*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 37*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtau.2s v0, v0 38*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 39*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.fcvtau.v2i32.v2f32(<2 x float> %A) 40*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 41*9880d681SAndroid Build Coastguard Worker} 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtau_4s(<4 x float> %A) nounwind { 44*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtau_4s: 45*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 46*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtau.4s v0, v0 47*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 48*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.fcvtau.v4i32.v4f32(<4 x float> %A) 49*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 50*9880d681SAndroid Build Coastguard Worker} 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtau_2d(<2 x double> %A) nounwind { 53*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtau_2d: 54*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 55*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtau.2d v0, v0 56*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 57*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.fcvtau.v2i64.v2f64(<2 x double> %A) 58*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 59*9880d681SAndroid Build Coastguard Worker} 60*9880d681SAndroid Build Coastguard Worker 61*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.fcvtau.v2i32.v2f32(<2 x float>) nounwind readnone 62*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.fcvtau.v4i32.v4f32(<4 x float>) nounwind readnone 63*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.fcvtau.v2i64.v2f64(<2 x double>) nounwind readnone 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtms_2s(<2 x float> %A) nounwind { 66*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtms_2s: 67*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 68*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtms.2s v0, v0 69*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 70*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.fcvtms.v2i32.v2f32(<2 x float> %A) 71*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 72*9880d681SAndroid Build Coastguard Worker} 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtms_4s(<4 x float> %A) nounwind { 75*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtms_4s: 76*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 77*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtms.4s v0, v0 78*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 79*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.fcvtms.v4i32.v4f32(<4 x float> %A) 80*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 81*9880d681SAndroid Build Coastguard Worker} 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtms_2d(<2 x double> %A) nounwind { 84*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtms_2d: 85*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 86*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtms.2d v0, v0 87*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 88*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.fcvtms.v2i64.v2f64(<2 x double> %A) 89*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 90*9880d681SAndroid Build Coastguard Worker} 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.fcvtms.v2i32.v2f32(<2 x float>) nounwind readnone 93*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.fcvtms.v4i32.v4f32(<4 x float>) nounwind readnone 94*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.fcvtms.v2i64.v2f64(<2 x double>) nounwind readnone 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtmu_2s(<2 x float> %A) nounwind { 97*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtmu_2s: 98*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 99*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtmu.2s v0, v0 100*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 101*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.fcvtmu.v2i32.v2f32(<2 x float> %A) 102*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtmu_4s(<4 x float> %A) nounwind { 106*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtmu_4s: 107*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 108*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtmu.4s v0, v0 109*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 110*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.fcvtmu.v4i32.v4f32(<4 x float> %A) 111*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 112*9880d681SAndroid Build Coastguard Worker} 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtmu_2d(<2 x double> %A) nounwind { 115*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtmu_2d: 116*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 117*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtmu.2d v0, v0 118*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 119*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.fcvtmu.v2i64.v2f64(<2 x double> %A) 120*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 121*9880d681SAndroid Build Coastguard Worker} 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.fcvtmu.v2i32.v2f32(<2 x float>) nounwind readnone 124*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.fcvtmu.v4i32.v4f32(<4 x float>) nounwind readnone 125*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.fcvtmu.v2i64.v2f64(<2 x double>) nounwind readnone 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtps_2s(<2 x float> %A) nounwind { 128*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtps_2s: 129*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 130*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtps.2s v0, v0 131*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 132*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.fcvtps.v2i32.v2f32(<2 x float> %A) 133*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 134*9880d681SAndroid Build Coastguard Worker} 135*9880d681SAndroid Build Coastguard Worker 136*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtps_4s(<4 x float> %A) nounwind { 137*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtps_4s: 138*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 139*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtps.4s v0, v0 140*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 141*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.fcvtps.v4i32.v4f32(<4 x float> %A) 142*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 143*9880d681SAndroid Build Coastguard Worker} 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtps_2d(<2 x double> %A) nounwind { 146*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtps_2d: 147*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 148*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtps.2d v0, v0 149*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 150*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.fcvtps.v2i64.v2f64(<2 x double> %A) 151*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 152*9880d681SAndroid Build Coastguard Worker} 153*9880d681SAndroid Build Coastguard Worker 154*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.fcvtps.v2i32.v2f32(<2 x float>) nounwind readnone 155*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.fcvtps.v4i32.v4f32(<4 x float>) nounwind readnone 156*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.fcvtps.v2i64.v2f64(<2 x double>) nounwind readnone 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtpu_2s(<2 x float> %A) nounwind { 159*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtpu_2s: 160*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 161*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtpu.2s v0, v0 162*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 163*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.fcvtpu.v2i32.v2f32(<2 x float> %A) 164*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 165*9880d681SAndroid Build Coastguard Worker} 166*9880d681SAndroid Build Coastguard Worker 167*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtpu_4s(<4 x float> %A) nounwind { 168*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtpu_4s: 169*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 170*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtpu.4s v0, v0 171*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 172*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.fcvtpu.v4i32.v4f32(<4 x float> %A) 173*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 174*9880d681SAndroid Build Coastguard Worker} 175*9880d681SAndroid Build Coastguard Worker 176*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtpu_2d(<2 x double> %A) nounwind { 177*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtpu_2d: 178*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 179*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtpu.2d v0, v0 180*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 181*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.fcvtpu.v2i64.v2f64(<2 x double> %A) 182*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 183*9880d681SAndroid Build Coastguard Worker} 184*9880d681SAndroid Build Coastguard Worker 185*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.fcvtpu.v2i32.v2f32(<2 x float>) nounwind readnone 186*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.fcvtpu.v4i32.v4f32(<4 x float>) nounwind readnone 187*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.fcvtpu.v2i64.v2f64(<2 x double>) nounwind readnone 188*9880d681SAndroid Build Coastguard Worker 189*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtns_2s(<2 x float> %A) nounwind { 190*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtns_2s: 191*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 192*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtns.2s v0, v0 193*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 194*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.fcvtns.v2i32.v2f32(<2 x float> %A) 195*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 196*9880d681SAndroid Build Coastguard Worker} 197*9880d681SAndroid Build Coastguard Worker 198*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtns_4s(<4 x float> %A) nounwind { 199*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtns_4s: 200*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 201*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtns.4s v0, v0 202*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 203*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.fcvtns.v4i32.v4f32(<4 x float> %A) 204*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 205*9880d681SAndroid Build Coastguard Worker} 206*9880d681SAndroid Build Coastguard Worker 207*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtns_2d(<2 x double> %A) nounwind { 208*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtns_2d: 209*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 210*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtns.2d v0, v0 211*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 212*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.fcvtns.v2i64.v2f64(<2 x double> %A) 213*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 214*9880d681SAndroid Build Coastguard Worker} 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.fcvtns.v2i32.v2f32(<2 x float>) nounwind readnone 217*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.fcvtns.v4i32.v4f32(<4 x float>) nounwind readnone 218*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.fcvtns.v2i64.v2f64(<2 x double>) nounwind readnone 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtnu_2s(<2 x float> %A) nounwind { 221*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtnu_2s: 222*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 223*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtnu.2s v0, v0 224*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 225*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.fcvtnu.v2i32.v2f32(<2 x float> %A) 226*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 227*9880d681SAndroid Build Coastguard Worker} 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtnu_4s(<4 x float> %A) nounwind { 230*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtnu_4s: 231*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 232*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtnu.4s v0, v0 233*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 234*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.fcvtnu.v4i32.v4f32(<4 x float> %A) 235*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 236*9880d681SAndroid Build Coastguard Worker} 237*9880d681SAndroid Build Coastguard Worker 238*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtnu_2d(<2 x double> %A) nounwind { 239*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtnu_2d: 240*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 241*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtnu.2d v0, v0 242*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 243*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.fcvtnu.v2i64.v2f64(<2 x double> %A) 244*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 245*9880d681SAndroid Build Coastguard Worker} 246*9880d681SAndroid Build Coastguard Worker 247*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.fcvtnu.v2i32.v2f32(<2 x float>) nounwind readnone 248*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.fcvtnu.v4i32.v4f32(<4 x float>) nounwind readnone 249*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.fcvtnu.v2i64.v2f64(<2 x double>) nounwind readnone 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtzs_2s(<2 x float> %A) nounwind { 252*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzs_2s: 253*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 254*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzs.2s v0, v0 255*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 256*9880d681SAndroid Build Coastguard Worker %tmp3 = fptosi <2 x float> %A to <2 x i32> 257*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 258*9880d681SAndroid Build Coastguard Worker} 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtzs_4s(<4 x float> %A) nounwind { 261*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzs_4s: 262*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 263*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzs.4s v0, v0 264*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 265*9880d681SAndroid Build Coastguard Worker %tmp3 = fptosi <4 x float> %A to <4 x i32> 266*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 267*9880d681SAndroid Build Coastguard Worker} 268*9880d681SAndroid Build Coastguard Worker 269*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtzs_2d(<2 x double> %A) nounwind { 270*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzs_2d: 271*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 272*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzs.2d v0, v0 273*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 274*9880d681SAndroid Build Coastguard Worker %tmp3 = fptosi <2 x double> %A to <2 x i64> 275*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 276*9880d681SAndroid Build Coastguard Worker} 277*9880d681SAndroid Build Coastguard Worker 278*9880d681SAndroid Build Coastguard Worker 279*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtzu_2s(<2 x float> %A) nounwind { 280*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzu_2s: 281*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 282*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzu.2s v0, v0 283*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 284*9880d681SAndroid Build Coastguard Worker %tmp3 = fptoui <2 x float> %A to <2 x i32> 285*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 286*9880d681SAndroid Build Coastguard Worker} 287*9880d681SAndroid Build Coastguard Worker 288*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtzu_4s(<4 x float> %A) nounwind { 289*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzu_4s: 290*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 291*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzu.4s v0, v0 292*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 293*9880d681SAndroid Build Coastguard Worker %tmp3 = fptoui <4 x float> %A to <4 x i32> 294*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 295*9880d681SAndroid Build Coastguard Worker} 296*9880d681SAndroid Build Coastguard Worker 297*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtzu_2d(<2 x double> %A) nounwind { 298*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzu_2d: 299*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 300*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzu.2d v0, v0 301*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 302*9880d681SAndroid Build Coastguard Worker %tmp3 = fptoui <2 x double> %A to <2 x i64> 303*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 304*9880d681SAndroid Build Coastguard Worker} 305*9880d681SAndroid Build Coastguard Worker 306*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @frinta_2s(<2 x float> %A) nounwind { 307*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frinta_2s: 308*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 309*9880d681SAndroid Build Coastguard Worker;CHECK: frinta.2s v0, v0 310*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 311*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.round.v2f32(<2 x float> %A) 312*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 313*9880d681SAndroid Build Coastguard Worker} 314*9880d681SAndroid Build Coastguard Worker 315*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @frinta_4s(<4 x float> %A) nounwind { 316*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frinta_4s: 317*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 318*9880d681SAndroid Build Coastguard Worker;CHECK: frinta.4s v0, v0 319*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 320*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.round.v4f32(<4 x float> %A) 321*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 322*9880d681SAndroid Build Coastguard Worker} 323*9880d681SAndroid Build Coastguard Worker 324*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @frinta_2d(<2 x double> %A) nounwind { 325*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frinta_2d: 326*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 327*9880d681SAndroid Build Coastguard Worker;CHECK: frinta.2d v0, v0 328*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 329*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.round.v2f64(<2 x double> %A) 330*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 331*9880d681SAndroid Build Coastguard Worker} 332*9880d681SAndroid Build Coastguard Worker 333*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.round.v2f32(<2 x float>) nounwind readnone 334*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.round.v4f32(<4 x float>) nounwind readnone 335*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.round.v2f64(<2 x double>) nounwind readnone 336*9880d681SAndroid Build Coastguard Worker 337*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @frinti_2s(<2 x float> %A) nounwind { 338*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frinti_2s: 339*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 340*9880d681SAndroid Build Coastguard Worker;CHECK: frinti.2s v0, v0 341*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 342*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.nearbyint.v2f32(<2 x float> %A) 343*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 344*9880d681SAndroid Build Coastguard Worker} 345*9880d681SAndroid Build Coastguard Worker 346*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @frinti_4s(<4 x float> %A) nounwind { 347*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frinti_4s: 348*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 349*9880d681SAndroid Build Coastguard Worker;CHECK: frinti.4s v0, v0 350*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 351*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.nearbyint.v4f32(<4 x float> %A) 352*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 353*9880d681SAndroid Build Coastguard Worker} 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @frinti_2d(<2 x double> %A) nounwind { 356*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frinti_2d: 357*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 358*9880d681SAndroid Build Coastguard Worker;CHECK: frinti.2d v0, v0 359*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 360*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.nearbyint.v2f64(<2 x double> %A) 361*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 362*9880d681SAndroid Build Coastguard Worker} 363*9880d681SAndroid Build Coastguard Worker 364*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.nearbyint.v2f32(<2 x float>) nounwind readnone 365*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.nearbyint.v4f32(<4 x float>) nounwind readnone 366*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.nearbyint.v2f64(<2 x double>) nounwind readnone 367*9880d681SAndroid Build Coastguard Worker 368*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @frintm_2s(<2 x float> %A) nounwind { 369*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintm_2s: 370*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 371*9880d681SAndroid Build Coastguard Worker;CHECK: frintm.2s v0, v0 372*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 373*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.floor.v2f32(<2 x float> %A) 374*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 375*9880d681SAndroid Build Coastguard Worker} 376*9880d681SAndroid Build Coastguard Worker 377*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @frintm_4s(<4 x float> %A) nounwind { 378*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintm_4s: 379*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 380*9880d681SAndroid Build Coastguard Worker;CHECK: frintm.4s v0, v0 381*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 382*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.floor.v4f32(<4 x float> %A) 383*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 384*9880d681SAndroid Build Coastguard Worker} 385*9880d681SAndroid Build Coastguard Worker 386*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @frintm_2d(<2 x double> %A) nounwind { 387*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintm_2d: 388*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 389*9880d681SAndroid Build Coastguard Worker;CHECK: frintm.2d v0, v0 390*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 391*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.floor.v2f64(<2 x double> %A) 392*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 393*9880d681SAndroid Build Coastguard Worker} 394*9880d681SAndroid Build Coastguard Worker 395*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.floor.v2f32(<2 x float>) nounwind readnone 396*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.floor.v4f32(<4 x float>) nounwind readnone 397*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.floor.v2f64(<2 x double>) nounwind readnone 398*9880d681SAndroid Build Coastguard Worker 399*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @frintn_2s(<2 x float> %A) nounwind { 400*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintn_2s: 401*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 402*9880d681SAndroid Build Coastguard Worker;CHECK: frintn.2s v0, v0 403*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 404*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.aarch64.neon.frintn.v2f32(<2 x float> %A) 405*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 406*9880d681SAndroid Build Coastguard Worker} 407*9880d681SAndroid Build Coastguard Worker 408*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @frintn_4s(<4 x float> %A) nounwind { 409*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintn_4s: 410*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 411*9880d681SAndroid Build Coastguard Worker;CHECK: frintn.4s v0, v0 412*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 413*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.aarch64.neon.frintn.v4f32(<4 x float> %A) 414*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 415*9880d681SAndroid Build Coastguard Worker} 416*9880d681SAndroid Build Coastguard Worker 417*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @frintn_2d(<2 x double> %A) nounwind { 418*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintn_2d: 419*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 420*9880d681SAndroid Build Coastguard Worker;CHECK: frintn.2d v0, v0 421*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 422*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.aarch64.neon.frintn.v2f64(<2 x double> %A) 423*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 424*9880d681SAndroid Build Coastguard Worker} 425*9880d681SAndroid Build Coastguard Worker 426*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.aarch64.neon.frintn.v2f32(<2 x float>) nounwind readnone 427*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.aarch64.neon.frintn.v4f32(<4 x float>) nounwind readnone 428*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.aarch64.neon.frintn.v2f64(<2 x double>) nounwind readnone 429*9880d681SAndroid Build Coastguard Worker 430*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @frintp_2s(<2 x float> %A) nounwind { 431*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintp_2s: 432*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 433*9880d681SAndroid Build Coastguard Worker;CHECK: frintp.2s v0, v0 434*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 435*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.ceil.v2f32(<2 x float> %A) 436*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 437*9880d681SAndroid Build Coastguard Worker} 438*9880d681SAndroid Build Coastguard Worker 439*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @frintp_4s(<4 x float> %A) nounwind { 440*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintp_4s: 441*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 442*9880d681SAndroid Build Coastguard Worker;CHECK: frintp.4s v0, v0 443*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 444*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.ceil.v4f32(<4 x float> %A) 445*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 446*9880d681SAndroid Build Coastguard Worker} 447*9880d681SAndroid Build Coastguard Worker 448*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @frintp_2d(<2 x double> %A) nounwind { 449*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintp_2d: 450*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 451*9880d681SAndroid Build Coastguard Worker;CHECK: frintp.2d v0, v0 452*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 453*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.ceil.v2f64(<2 x double> %A) 454*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 455*9880d681SAndroid Build Coastguard Worker} 456*9880d681SAndroid Build Coastguard Worker 457*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.ceil.v2f32(<2 x float>) nounwind readnone 458*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.ceil.v4f32(<4 x float>) nounwind readnone 459*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.ceil.v2f64(<2 x double>) nounwind readnone 460*9880d681SAndroid Build Coastguard Worker 461*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @frintx_2s(<2 x float> %A) nounwind { 462*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintx_2s: 463*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 464*9880d681SAndroid Build Coastguard Worker;CHECK: frintx.2s v0, v0 465*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 466*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.rint.v2f32(<2 x float> %A) 467*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 468*9880d681SAndroid Build Coastguard Worker} 469*9880d681SAndroid Build Coastguard Worker 470*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @frintx_4s(<4 x float> %A) nounwind { 471*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintx_4s: 472*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 473*9880d681SAndroid Build Coastguard Worker;CHECK: frintx.4s v0, v0 474*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 475*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.rint.v4f32(<4 x float> %A) 476*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 477*9880d681SAndroid Build Coastguard Worker} 478*9880d681SAndroid Build Coastguard Worker 479*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @frintx_2d(<2 x double> %A) nounwind { 480*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintx_2d: 481*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 482*9880d681SAndroid Build Coastguard Worker;CHECK: frintx.2d v0, v0 483*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 484*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.rint.v2f64(<2 x double> %A) 485*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 486*9880d681SAndroid Build Coastguard Worker} 487*9880d681SAndroid Build Coastguard Worker 488*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.rint.v2f32(<2 x float>) nounwind readnone 489*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.rint.v4f32(<4 x float>) nounwind readnone 490*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.rint.v2f64(<2 x double>) nounwind readnone 491*9880d681SAndroid Build Coastguard Worker 492*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @frintz_2s(<2 x float> %A) nounwind { 493*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintz_2s: 494*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 495*9880d681SAndroid Build Coastguard Worker;CHECK: frintz.2s v0, v0 496*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 497*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.trunc.v2f32(<2 x float> %A) 498*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 499*9880d681SAndroid Build Coastguard Worker} 500*9880d681SAndroid Build Coastguard Worker 501*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @frintz_4s(<4 x float> %A) nounwind { 502*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintz_4s: 503*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 504*9880d681SAndroid Build Coastguard Worker;CHECK: frintz.4s v0, v0 505*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 506*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.trunc.v4f32(<4 x float> %A) 507*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 508*9880d681SAndroid Build Coastguard Worker} 509*9880d681SAndroid Build Coastguard Worker 510*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @frintz_2d(<2 x double> %A) nounwind { 511*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: frintz_2d: 512*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 513*9880d681SAndroid Build Coastguard Worker;CHECK: frintz.2d v0, v0 514*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 515*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.trunc.v2f64(<2 x double> %A) 516*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 517*9880d681SAndroid Build Coastguard Worker} 518*9880d681SAndroid Build Coastguard Worker 519*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.trunc.v2f32(<2 x float>) nounwind readnone 520*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.trunc.v4f32(<4 x float>) nounwind readnone 521*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.trunc.v2f64(<2 x double>) nounwind readnone 522*9880d681SAndroid Build Coastguard Worker 523*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @fcvtxn_2s(<2 x double> %A) nounwind { 524*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtxn_2s: 525*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 526*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtxn v0.2s, v0.2d 527*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 528*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.aarch64.neon.fcvtxn.v2f32.v2f64(<2 x double> %A) 529*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 530*9880d681SAndroid Build Coastguard Worker} 531*9880d681SAndroid Build Coastguard Worker 532*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @fcvtxn_4s(<2 x float> %ret, <2 x double> %A) nounwind { 533*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtxn_4s: 534*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 535*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtxn2 v0.4s, v1.2d 536*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 537*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.aarch64.neon.fcvtxn.v2f32.v2f64(<2 x double> %A) 538*9880d681SAndroid Build Coastguard Worker %res = shufflevector <2 x float> %ret, <2 x float> %tmp3, <4 x i32> <i32 0, i32 1, i32 2, i32 3> 539*9880d681SAndroid Build Coastguard Worker ret <4 x float> %res 540*9880d681SAndroid Build Coastguard Worker} 541*9880d681SAndroid Build Coastguard Worker 542*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.aarch64.neon.fcvtxn.v2f32.v2f64(<2 x double>) nounwind readnone 543*9880d681SAndroid Build Coastguard Worker 544*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtzsc_2s(<2 x float> %A) nounwind { 545*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzsc_2s: 546*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 547*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzs.2s v0, v0, #1 548*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 549*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.vcvtfp2fxs.v2i32.v2f32(<2 x float> %A, i32 1) 550*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 551*9880d681SAndroid Build Coastguard Worker} 552*9880d681SAndroid Build Coastguard Worker 553*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtzsc_4s(<4 x float> %A) nounwind { 554*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzsc_4s: 555*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 556*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzs.4s v0, v0, #1 557*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 558*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.vcvtfp2fxs.v4i32.v4f32(<4 x float> %A, i32 1) 559*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 560*9880d681SAndroid Build Coastguard Worker} 561*9880d681SAndroid Build Coastguard Worker 562*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtzsc_2d(<2 x double> %A) nounwind { 563*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzsc_2d: 564*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 565*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzs.2d v0, v0, #1 566*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 567*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.vcvtfp2fxs.v2i64.v2f64(<2 x double> %A, i32 1) 568*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 569*9880d681SAndroid Build Coastguard Worker} 570*9880d681SAndroid Build Coastguard Worker 571*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.vcvtfp2fxs.v2i32.v2f32(<2 x float>, i32) nounwind readnone 572*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.vcvtfp2fxs.v4i32.v4f32(<4 x float>, i32) nounwind readnone 573*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.vcvtfp2fxs.v2i64.v2f64(<2 x double>, i32) nounwind readnone 574*9880d681SAndroid Build Coastguard Worker 575*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @fcvtzuc_2s(<2 x float> %A) nounwind { 576*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzuc_2s: 577*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 578*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzu.2s v0, v0, #1 579*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 580*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i32> @llvm.aarch64.neon.vcvtfp2fxu.v2i32.v2f32(<2 x float> %A, i32 1) 581*9880d681SAndroid Build Coastguard Worker ret <2 x i32> %tmp3 582*9880d681SAndroid Build Coastguard Worker} 583*9880d681SAndroid Build Coastguard Worker 584*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @fcvtzuc_4s(<4 x float> %A) nounwind { 585*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzuc_4s: 586*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 587*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzu.4s v0, v0, #1 588*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 589*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x i32> @llvm.aarch64.neon.vcvtfp2fxu.v4i32.v4f32(<4 x float> %A, i32 1) 590*9880d681SAndroid Build Coastguard Worker ret <4 x i32> %tmp3 591*9880d681SAndroid Build Coastguard Worker} 592*9880d681SAndroid Build Coastguard Worker 593*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @fcvtzuc_2d(<2 x double> %A) nounwind { 594*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: fcvtzuc_2d: 595*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 596*9880d681SAndroid Build Coastguard Worker;CHECK: fcvtzu.2d v0, v0, #1 597*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 598*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x i64> @llvm.aarch64.neon.vcvtfp2fxu.v2i64.v2f64(<2 x double> %A, i32 1) 599*9880d681SAndroid Build Coastguard Worker ret <2 x i64> %tmp3 600*9880d681SAndroid Build Coastguard Worker} 601*9880d681SAndroid Build Coastguard Worker 602*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.vcvtfp2fxu.v2i32.v2f32(<2 x float>, i32) nounwind readnone 603*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.vcvtfp2fxu.v4i32.v4f32(<4 x float>, i32) nounwind readnone 604*9880d681SAndroid Build Coastguard Workerdeclare <2 x i64> @llvm.aarch64.neon.vcvtfp2fxu.v2i64.v2f64(<2 x double>, i32) nounwind readnone 605*9880d681SAndroid Build Coastguard Worker 606*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @scvtf_2sc(<2 x i32> %A) nounwind { 607*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: scvtf_2sc: 608*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 609*9880d681SAndroid Build Coastguard Worker;CHECK: scvtf.2s v0, v0, #1 610*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 611*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.aarch64.neon.vcvtfxs2fp.v2f32.v2i32(<2 x i32> %A, i32 1) 612*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 613*9880d681SAndroid Build Coastguard Worker} 614*9880d681SAndroid Build Coastguard Worker 615*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @scvtf_4sc(<4 x i32> %A) nounwind { 616*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: scvtf_4sc: 617*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 618*9880d681SAndroid Build Coastguard Worker;CHECK: scvtf.4s v0, v0, #1 619*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 620*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.aarch64.neon.vcvtfxs2fp.v4f32.v4i32(<4 x i32> %A, i32 1) 621*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 622*9880d681SAndroid Build Coastguard Worker} 623*9880d681SAndroid Build Coastguard Worker 624*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @scvtf_2dc(<2 x i64> %A) nounwind { 625*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: scvtf_2dc: 626*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 627*9880d681SAndroid Build Coastguard Worker;CHECK: scvtf.2d v0, v0, #1 628*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 629*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.aarch64.neon.vcvtfxs2fp.v2f64.v2i64(<2 x i64> %A, i32 1) 630*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 631*9880d681SAndroid Build Coastguard Worker} 632*9880d681SAndroid Build Coastguard Worker 633*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.aarch64.neon.vcvtfxs2fp.v2f32.v2i32(<2 x i32>, i32) nounwind readnone 634*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.aarch64.neon.vcvtfxs2fp.v4f32.v4i32(<4 x i32>, i32) nounwind readnone 635*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.aarch64.neon.vcvtfxs2fp.v2f64.v2i64(<2 x i64>, i32) nounwind readnone 636*9880d681SAndroid Build Coastguard Worker 637*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @ucvtf_2sc(<2 x i32> %A) nounwind { 638*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: ucvtf_2sc: 639*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 640*9880d681SAndroid Build Coastguard Worker;CHECK: ucvtf.2s v0, v0, #1 641*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 642*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x float> @llvm.aarch64.neon.vcvtfxu2fp.v2f32.v2i32(<2 x i32> %A, i32 1) 643*9880d681SAndroid Build Coastguard Worker ret <2 x float> %tmp3 644*9880d681SAndroid Build Coastguard Worker} 645*9880d681SAndroid Build Coastguard Worker 646*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @ucvtf_4sc(<4 x i32> %A) nounwind { 647*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: ucvtf_4sc: 648*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 649*9880d681SAndroid Build Coastguard Worker;CHECK: ucvtf.4s v0, v0, #1 650*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 651*9880d681SAndroid Build Coastguard Worker %tmp3 = call <4 x float> @llvm.aarch64.neon.vcvtfxu2fp.v4f32.v4i32(<4 x i32> %A, i32 1) 652*9880d681SAndroid Build Coastguard Worker ret <4 x float> %tmp3 653*9880d681SAndroid Build Coastguard Worker} 654*9880d681SAndroid Build Coastguard Worker 655*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @ucvtf_2dc(<2 x i64> %A) nounwind { 656*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: ucvtf_2dc: 657*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: ld1 658*9880d681SAndroid Build Coastguard Worker;CHECK: ucvtf.2d v0, v0, #1 659*9880d681SAndroid Build Coastguard Worker;CHECK-NEXT: ret 660*9880d681SAndroid Build Coastguard Worker %tmp3 = call <2 x double> @llvm.aarch64.neon.vcvtfxu2fp.v2f64.v2i64(<2 x i64> %A, i32 1) 661*9880d681SAndroid Build Coastguard Worker ret <2 x double> %tmp3 662*9880d681SAndroid Build Coastguard Worker} 663*9880d681SAndroid Build Coastguard Worker 664*9880d681SAndroid Build Coastguard Worker 665*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: autogen_SD28458: 666*9880d681SAndroid Build Coastguard Worker;CHECK: fcvt 667*9880d681SAndroid Build Coastguard Worker;CHECK: ret 668*9880d681SAndroid Build Coastguard Workerdefine void @autogen_SD28458(<8 x double> %val.f64, <8 x float>* %addr.f32) { 669*9880d681SAndroid Build Coastguard Worker %Tr53 = fptrunc <8 x double> %val.f64 to <8 x float> 670*9880d681SAndroid Build Coastguard Worker store <8 x float> %Tr53, <8 x float>* %addr.f32 671*9880d681SAndroid Build Coastguard Worker ret void 672*9880d681SAndroid Build Coastguard Worker} 673*9880d681SAndroid Build Coastguard Worker 674*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: autogen_SD19225: 675*9880d681SAndroid Build Coastguard Worker;CHECK: fcvt 676*9880d681SAndroid Build Coastguard Worker;CHECK: ret 677*9880d681SAndroid Build Coastguard Workerdefine void @autogen_SD19225(<8 x double>* %addr.f64, <8 x float>* %addr.f32) { 678*9880d681SAndroid Build Coastguard Worker %A = load <8 x float>, <8 x float>* %addr.f32 679*9880d681SAndroid Build Coastguard Worker %Tr53 = fpext <8 x float> %A to <8 x double> 680*9880d681SAndroid Build Coastguard Worker store <8 x double> %Tr53, <8 x double>* %addr.f64 681*9880d681SAndroid Build Coastguard Worker ret void 682*9880d681SAndroid Build Coastguard Worker} 683*9880d681SAndroid Build Coastguard Worker 684*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.aarch64.neon.vcvtfxu2fp.v2f32.v2i32(<2 x i32>, i32) nounwind readnone 685*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.aarch64.neon.vcvtfxu2fp.v4f32.v4i32(<4 x i32>, i32) nounwind readnone 686*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.aarch64.neon.vcvtfxu2fp.v2f64.v2i64(<2 x i64>, i32) nounwind readnone 687