1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=arm64 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmsws: 4*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtms w0, s0 5*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 6*9880d681SAndroid Build Coastguard Workerdefine i32 @testmsws(float %a) { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker %call = call float @floorf(float %a) nounwind readnone 9*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %call to i32 10*9880d681SAndroid Build Coastguard Worker ret i32 %conv 11*9880d681SAndroid Build Coastguard Worker} 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmsxs: 14*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtms x0, s0 15*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 16*9880d681SAndroid Build Coastguard Workerdefine i64 @testmsxs(float %a) { 17*9880d681SAndroid Build Coastguard Workerentry: 18*9880d681SAndroid Build Coastguard Worker %call = call float @floorf(float %a) nounwind readnone 19*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %call to i64 20*9880d681SAndroid Build Coastguard Worker ret i64 %conv 21*9880d681SAndroid Build Coastguard Worker} 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmswd: 24*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtms w0, d0 25*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 26*9880d681SAndroid Build Coastguard Workerdefine i32 @testmswd(double %a) { 27*9880d681SAndroid Build Coastguard Workerentry: 28*9880d681SAndroid Build Coastguard Worker %call = call double @floor(double %a) nounwind readnone 29*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %call to i32 30*9880d681SAndroid Build Coastguard Worker ret i32 %conv 31*9880d681SAndroid Build Coastguard Worker} 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmsxd: 34*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtms x0, d0 35*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 36*9880d681SAndroid Build Coastguard Workerdefine i64 @testmsxd(double %a) { 37*9880d681SAndroid Build Coastguard Workerentry: 38*9880d681SAndroid Build Coastguard Worker %call = call double @floor(double %a) nounwind readnone 39*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %call to i64 40*9880d681SAndroid Build Coastguard Worker ret i64 %conv 41*9880d681SAndroid Build Coastguard Worker} 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmuws: 44*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtmu w0, s0 45*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 46*9880d681SAndroid Build Coastguard Workerdefine i32 @testmuws(float %a) { 47*9880d681SAndroid Build Coastguard Workerentry: 48*9880d681SAndroid Build Coastguard Worker %call = call float @floorf(float %a) nounwind readnone 49*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %call to i32 50*9880d681SAndroid Build Coastguard Worker ret i32 %conv 51*9880d681SAndroid Build Coastguard Worker} 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmuxs: 54*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtmu x0, s0 55*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 56*9880d681SAndroid Build Coastguard Workerdefine i64 @testmuxs(float %a) { 57*9880d681SAndroid Build Coastguard Workerentry: 58*9880d681SAndroid Build Coastguard Worker %call = call float @floorf(float %a) nounwind readnone 59*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %call to i64 60*9880d681SAndroid Build Coastguard Worker ret i64 %conv 61*9880d681SAndroid Build Coastguard Worker} 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmuwd: 64*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtmu w0, d0 65*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 66*9880d681SAndroid Build Coastguard Workerdefine i32 @testmuwd(double %a) { 67*9880d681SAndroid Build Coastguard Workerentry: 68*9880d681SAndroid Build Coastguard Worker %call = call double @floor(double %a) nounwind readnone 69*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %call to i32 70*9880d681SAndroid Build Coastguard Worker ret i32 %conv 71*9880d681SAndroid Build Coastguard Worker} 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testmuxd: 74*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtmu x0, d0 75*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 76*9880d681SAndroid Build Coastguard Workerdefine i64 @testmuxd(double %a) { 77*9880d681SAndroid Build Coastguard Workerentry: 78*9880d681SAndroid Build Coastguard Worker %call = call double @floor(double %a) nounwind readnone 79*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %call to i64 80*9880d681SAndroid Build Coastguard Worker ret i64 %conv 81*9880d681SAndroid Build Coastguard Worker} 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpsws: 84*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtps w0, s0 85*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 86*9880d681SAndroid Build Coastguard Workerdefine i32 @testpsws(float %a) { 87*9880d681SAndroid Build Coastguard Workerentry: 88*9880d681SAndroid Build Coastguard Worker %call = call float @ceilf(float %a) nounwind readnone 89*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %call to i32 90*9880d681SAndroid Build Coastguard Worker ret i32 %conv 91*9880d681SAndroid Build Coastguard Worker} 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpsxs: 94*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtps x0, s0 95*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 96*9880d681SAndroid Build Coastguard Workerdefine i64 @testpsxs(float %a) { 97*9880d681SAndroid Build Coastguard Workerentry: 98*9880d681SAndroid Build Coastguard Worker %call = call float @ceilf(float %a) nounwind readnone 99*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %call to i64 100*9880d681SAndroid Build Coastguard Worker ret i64 %conv 101*9880d681SAndroid Build Coastguard Worker} 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpswd: 104*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtps w0, d0 105*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 106*9880d681SAndroid Build Coastguard Workerdefine i32 @testpswd(double %a) { 107*9880d681SAndroid Build Coastguard Workerentry: 108*9880d681SAndroid Build Coastguard Worker %call = call double @ceil(double %a) nounwind readnone 109*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %call to i32 110*9880d681SAndroid Build Coastguard Worker ret i32 %conv 111*9880d681SAndroid Build Coastguard Worker} 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpsxd: 114*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtps x0, d0 115*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 116*9880d681SAndroid Build Coastguard Workerdefine i64 @testpsxd(double %a) { 117*9880d681SAndroid Build Coastguard Workerentry: 118*9880d681SAndroid Build Coastguard Worker %call = call double @ceil(double %a) nounwind readnone 119*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %call to i64 120*9880d681SAndroid Build Coastguard Worker ret i64 %conv 121*9880d681SAndroid Build Coastguard Worker} 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpuws: 124*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtpu w0, s0 125*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 126*9880d681SAndroid Build Coastguard Workerdefine i32 @testpuws(float %a) { 127*9880d681SAndroid Build Coastguard Workerentry: 128*9880d681SAndroid Build Coastguard Worker %call = call float @ceilf(float %a) nounwind readnone 129*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %call to i32 130*9880d681SAndroid Build Coastguard Worker ret i32 %conv 131*9880d681SAndroid Build Coastguard Worker} 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpuxs: 134*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtpu x0, s0 135*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 136*9880d681SAndroid Build Coastguard Workerdefine i64 @testpuxs(float %a) { 137*9880d681SAndroid Build Coastguard Workerentry: 138*9880d681SAndroid Build Coastguard Worker %call = call float @ceilf(float %a) nounwind readnone 139*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %call to i64 140*9880d681SAndroid Build Coastguard Worker ret i64 %conv 141*9880d681SAndroid Build Coastguard Worker} 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpuwd: 144*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtpu w0, d0 145*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 146*9880d681SAndroid Build Coastguard Workerdefine i32 @testpuwd(double %a) { 147*9880d681SAndroid Build Coastguard Workerentry: 148*9880d681SAndroid Build Coastguard Worker %call = call double @ceil(double %a) nounwind readnone 149*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %call to i32 150*9880d681SAndroid Build Coastguard Worker ret i32 %conv 151*9880d681SAndroid Build Coastguard Worker} 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testpuxd: 154*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtpu x0, d0 155*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 156*9880d681SAndroid Build Coastguard Workerdefine i64 @testpuxd(double %a) { 157*9880d681SAndroid Build Coastguard Workerentry: 158*9880d681SAndroid Build Coastguard Worker %call = call double @ceil(double %a) nounwind readnone 159*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %call to i64 160*9880d681SAndroid Build Coastguard Worker ret i64 %conv 161*9880d681SAndroid Build Coastguard Worker} 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzsws: 164*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzs w0, s0 165*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 166*9880d681SAndroid Build Coastguard Workerdefine i32 @testzsws(float %a) { 167*9880d681SAndroid Build Coastguard Workerentry: 168*9880d681SAndroid Build Coastguard Worker %call = call float @truncf(float %a) nounwind readnone 169*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %call to i32 170*9880d681SAndroid Build Coastguard Worker ret i32 %conv 171*9880d681SAndroid Build Coastguard Worker} 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzsxs: 174*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzs x0, s0 175*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 176*9880d681SAndroid Build Coastguard Workerdefine i64 @testzsxs(float %a) { 177*9880d681SAndroid Build Coastguard Workerentry: 178*9880d681SAndroid Build Coastguard Worker %call = call float @truncf(float %a) nounwind readnone 179*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %call to i64 180*9880d681SAndroid Build Coastguard Worker ret i64 %conv 181*9880d681SAndroid Build Coastguard Worker} 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzswd: 184*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzs w0, d0 185*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 186*9880d681SAndroid Build Coastguard Workerdefine i32 @testzswd(double %a) { 187*9880d681SAndroid Build Coastguard Workerentry: 188*9880d681SAndroid Build Coastguard Worker %call = call double @trunc(double %a) nounwind readnone 189*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %call to i32 190*9880d681SAndroid Build Coastguard Worker ret i32 %conv 191*9880d681SAndroid Build Coastguard Worker} 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzsxd: 194*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzs x0, d0 195*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 196*9880d681SAndroid Build Coastguard Workerdefine i64 @testzsxd(double %a) { 197*9880d681SAndroid Build Coastguard Workerentry: 198*9880d681SAndroid Build Coastguard Worker %call = call double @trunc(double %a) nounwind readnone 199*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %call to i64 200*9880d681SAndroid Build Coastguard Worker ret i64 %conv 201*9880d681SAndroid Build Coastguard Worker} 202*9880d681SAndroid Build Coastguard Worker 203*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzuws: 204*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzu w0, s0 205*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 206*9880d681SAndroid Build Coastguard Workerdefine i32 @testzuws(float %a) { 207*9880d681SAndroid Build Coastguard Workerentry: 208*9880d681SAndroid Build Coastguard Worker %call = call float @truncf(float %a) nounwind readnone 209*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %call to i32 210*9880d681SAndroid Build Coastguard Worker ret i32 %conv 211*9880d681SAndroid Build Coastguard Worker} 212*9880d681SAndroid Build Coastguard Worker 213*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzuxs: 214*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzu x0, s0 215*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 216*9880d681SAndroid Build Coastguard Workerdefine i64 @testzuxs(float %a) { 217*9880d681SAndroid Build Coastguard Workerentry: 218*9880d681SAndroid Build Coastguard Worker %call = call float @truncf(float %a) nounwind readnone 219*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %call to i64 220*9880d681SAndroid Build Coastguard Worker ret i64 %conv 221*9880d681SAndroid Build Coastguard Worker} 222*9880d681SAndroid Build Coastguard Worker 223*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzuwd: 224*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzu w0, d0 225*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 226*9880d681SAndroid Build Coastguard Workerdefine i32 @testzuwd(double %a) { 227*9880d681SAndroid Build Coastguard Workerentry: 228*9880d681SAndroid Build Coastguard Worker %call = call double @trunc(double %a) nounwind readnone 229*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %call to i32 230*9880d681SAndroid Build Coastguard Worker ret i32 %conv 231*9880d681SAndroid Build Coastguard Worker} 232*9880d681SAndroid Build Coastguard Worker 233*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testzuxd: 234*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtzu x0, d0 235*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 236*9880d681SAndroid Build Coastguard Workerdefine i64 @testzuxd(double %a) { 237*9880d681SAndroid Build Coastguard Workerentry: 238*9880d681SAndroid Build Coastguard Worker %call = call double @trunc(double %a) nounwind readnone 239*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %call to i64 240*9880d681SAndroid Build Coastguard Worker ret i64 %conv 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testasws: 244*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtas w0, s0 245*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 246*9880d681SAndroid Build Coastguard Workerdefine i32 @testasws(float %a) { 247*9880d681SAndroid Build Coastguard Workerentry: 248*9880d681SAndroid Build Coastguard Worker %call = call float @roundf(float %a) nounwind readnone 249*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %call to i32 250*9880d681SAndroid Build Coastguard Worker ret i32 %conv 251*9880d681SAndroid Build Coastguard Worker} 252*9880d681SAndroid Build Coastguard Worker 253*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testasxs: 254*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtas x0, s0 255*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 256*9880d681SAndroid Build Coastguard Workerdefine i64 @testasxs(float %a) { 257*9880d681SAndroid Build Coastguard Workerentry: 258*9880d681SAndroid Build Coastguard Worker %call = call float @roundf(float %a) nounwind readnone 259*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %call to i64 260*9880d681SAndroid Build Coastguard Worker ret i64 %conv 261*9880d681SAndroid Build Coastguard Worker} 262*9880d681SAndroid Build Coastguard Worker 263*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testaswd: 264*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtas w0, d0 265*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 266*9880d681SAndroid Build Coastguard Workerdefine i32 @testaswd(double %a) { 267*9880d681SAndroid Build Coastguard Workerentry: 268*9880d681SAndroid Build Coastguard Worker %call = call double @round(double %a) nounwind readnone 269*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %call to i32 270*9880d681SAndroid Build Coastguard Worker ret i32 %conv 271*9880d681SAndroid Build Coastguard Worker} 272*9880d681SAndroid Build Coastguard Worker 273*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testasxd: 274*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtas x0, d0 275*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 276*9880d681SAndroid Build Coastguard Workerdefine i64 @testasxd(double %a) { 277*9880d681SAndroid Build Coastguard Workerentry: 278*9880d681SAndroid Build Coastguard Worker %call = call double @round(double %a) nounwind readnone 279*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %call to i64 280*9880d681SAndroid Build Coastguard Worker ret i64 %conv 281*9880d681SAndroid Build Coastguard Worker} 282*9880d681SAndroid Build Coastguard Worker 283*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testauws: 284*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtau w0, s0 285*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 286*9880d681SAndroid Build Coastguard Workerdefine i32 @testauws(float %a) { 287*9880d681SAndroid Build Coastguard Workerentry: 288*9880d681SAndroid Build Coastguard Worker %call = call float @roundf(float %a) nounwind readnone 289*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %call to i32 290*9880d681SAndroid Build Coastguard Worker ret i32 %conv 291*9880d681SAndroid Build Coastguard Worker} 292*9880d681SAndroid Build Coastguard Worker 293*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testauxs: 294*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtau x0, s0 295*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{s[0-9]+}}, s0 296*9880d681SAndroid Build Coastguard Workerdefine i64 @testauxs(float %a) { 297*9880d681SAndroid Build Coastguard Workerentry: 298*9880d681SAndroid Build Coastguard Worker %call = call float @roundf(float %a) nounwind readnone 299*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %call to i64 300*9880d681SAndroid Build Coastguard Worker ret i64 %conv 301*9880d681SAndroid Build Coastguard Worker} 302*9880d681SAndroid Build Coastguard Worker 303*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testauwd: 304*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtau w0, d0 305*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 306*9880d681SAndroid Build Coastguard Workerdefine i32 @testauwd(double %a) { 307*9880d681SAndroid Build Coastguard Workerentry: 308*9880d681SAndroid Build Coastguard Worker %call = call double @round(double %a) nounwind readnone 309*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %call to i32 310*9880d681SAndroid Build Coastguard Worker ret i32 %conv 311*9880d681SAndroid Build Coastguard Worker} 312*9880d681SAndroid Build Coastguard Worker 313*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: testauxd: 314*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtau x0, d0 315*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: frintx {{d[0-9]+}}, d0 316*9880d681SAndroid Build Coastguard Workerdefine i64 @testauxd(double %a) { 317*9880d681SAndroid Build Coastguard Workerentry: 318*9880d681SAndroid Build Coastguard Worker %call = call double @round(double %a) nounwind readnone 319*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %call to i64 320*9880d681SAndroid Build Coastguard Worker ret i64 %conv 321*9880d681SAndroid Build Coastguard Worker} 322*9880d681SAndroid Build Coastguard Worker 323*9880d681SAndroid Build Coastguard Workerdeclare float @floorf(float) nounwind readnone 324*9880d681SAndroid Build Coastguard Workerdeclare double @floor(double) nounwind readnone 325*9880d681SAndroid Build Coastguard Workerdeclare float @ceilf(float) nounwind readnone 326*9880d681SAndroid Build Coastguard Workerdeclare double @ceil(double) nounwind readnone 327*9880d681SAndroid Build Coastguard Workerdeclare float @truncf(float) nounwind readnone 328*9880d681SAndroid Build Coastguard Workerdeclare double @trunc(double) nounwind readnone 329*9880d681SAndroid Build Coastguard Workerdeclare float @roundf(float) nounwind readnone 330*9880d681SAndroid Build Coastguard Workerdeclare double @round(double) nounwind readnone 331