1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -asm-verbose=false -mtriple=aarch64-none-eabi | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @add_h(<4 x half> %a, <4 x half> %b) { 4*9880d681SAndroid Build Coastguard Workerentry: 5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: add_h: 6*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl [[OP1:v[0-9]+\.4s]], v0.4h 7*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl [[OP2:v[0-9]+\.4s]], v1.4h 8*9880d681SAndroid Build Coastguard Worker; CHECK: fadd [[RES:v[0-9]+.4s]], [[OP1]], [[OP2]] 9*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtn v0.4h, [[RES]] 10*9880d681SAndroid Build Coastguard Worker %0 = fadd <4 x half> %a, %b 11*9880d681SAndroid Build Coastguard Worker ret <4 x half> %0 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @build_h4(<4 x half> %a) { 16*9880d681SAndroid Build Coastguard Workerentry: 17*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: build_h4: 18*9880d681SAndroid Build Coastguard Worker; CHECK: mov [[GPR:w[0-9]+]], #15565 19*9880d681SAndroid Build Coastguard Worker; CHECK: dup v0.4h, [[GPR]] 20*9880d681SAndroid Build Coastguard Worker ret <4 x half> <half 0xH3CCD, half 0xH3CCD, half 0xH3CCD, half 0xH3CCD> 21*9880d681SAndroid Build Coastguard Worker} 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @sub_h(<4 x half> %a, <4 x half> %b) { 25*9880d681SAndroid Build Coastguard Workerentry: 26*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sub_h: 27*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl [[OP1:v[0-9]+\.4s]], v0.4h 28*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl [[OP2:v[0-9]+\.4s]], v1.4h 29*9880d681SAndroid Build Coastguard Worker; CHECK: fsub [[RES:v[0-9]+.4s]], [[OP1]], [[OP2]] 30*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtn v0.4h, [[RES]] 31*9880d681SAndroid Build Coastguard Worker %0 = fsub <4 x half> %a, %b 32*9880d681SAndroid Build Coastguard Worker ret <4 x half> %0 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @mul_h(<4 x half> %a, <4 x half> %b) { 37*9880d681SAndroid Build Coastguard Workerentry: 38*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul_h: 39*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl [[OP1:v[0-9]+\.4s]], v0.4h 40*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl [[OP2:v[0-9]+\.4s]], v1.4h 41*9880d681SAndroid Build Coastguard Worker; CHECK: fmul [[RES:v[0-9]+.4s]], [[OP1]], [[OP2]] 42*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtn v0.4h, [[RES]] 43*9880d681SAndroid Build Coastguard Worker %0 = fmul <4 x half> %a, %b 44*9880d681SAndroid Build Coastguard Worker ret <4 x half> %0 45*9880d681SAndroid Build Coastguard Worker} 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @div_h(<4 x half> %a, <4 x half> %b) { 49*9880d681SAndroid Build Coastguard Workerentry: 50*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: div_h: 51*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl [[OP1:v[0-9]+\.4s]], v0.4h 52*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtl [[OP2:v[0-9]+\.4s]], v1.4h 53*9880d681SAndroid Build Coastguard Worker; CHECK: fdiv [[RES:v[0-9]+.4s]], [[OP1]], [[OP2]] 54*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtn v0.4h, [[RES]] 55*9880d681SAndroid Build Coastguard Worker %0 = fdiv <4 x half> %a, %b 56*9880d681SAndroid Build Coastguard Worker ret <4 x half> %0 57*9880d681SAndroid Build Coastguard Worker} 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @load_h(<4 x half>* %a) { 61*9880d681SAndroid Build Coastguard Workerentry: 62*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: load_h: 63*9880d681SAndroid Build Coastguard Worker; CHECK: ldr d0, [x0] 64*9880d681SAndroid Build Coastguard Worker %0 = load <4 x half>, <4 x half>* %a, align 4 65*9880d681SAndroid Build Coastguard Worker ret <4 x half> %0 66*9880d681SAndroid Build Coastguard Worker} 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Workerdefine void @store_h(<4 x half>* %a, <4 x half> %b) { 70*9880d681SAndroid Build Coastguard Workerentry: 71*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: store_h: 72*9880d681SAndroid Build Coastguard Worker; CHECK: str d0, [x0] 73*9880d681SAndroid Build Coastguard Worker store <4 x half> %b, <4 x half>* %a, align 4 74*9880d681SAndroid Build Coastguard Worker ret void 75*9880d681SAndroid Build Coastguard Worker} 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @s_to_h(<4 x float> %a) { 78*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: s_to_h: 79*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtn v0.4h, v0.4s 80*9880d681SAndroid Build Coastguard Worker %1 = fptrunc <4 x float> %a to <4 x half> 81*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 82*9880d681SAndroid Build Coastguard Worker} 83*9880d681SAndroid Build Coastguard Worker 84*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @d_to_h(<4 x double> %a) { 85*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: d_to_h: 86*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 87*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 88*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 89*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 90*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins 91*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins 92*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins 93*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins 94*9880d681SAndroid Build Coastguard Worker %1 = fptrunc <4 x double> %a to <4 x half> 95*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 96*9880d681SAndroid Build Coastguard Worker} 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @h_to_s(<4 x half> %a) { 99*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: h_to_s: 100*9880d681SAndroid Build Coastguard Worker; CHECK: fcvtl v0.4s, v0.4h 101*9880d681SAndroid Build Coastguard Worker %1 = fpext <4 x half> %a to <4 x float> 102*9880d681SAndroid Build Coastguard Worker ret <4 x float> %1 103*9880d681SAndroid Build Coastguard Worker} 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdefine <4 x double> @h_to_d(<4 x half> %a) { 106*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: h_to_d: 107*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 108*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 109*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 110*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 111*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins 112*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins 113*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins 114*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ins 115*9880d681SAndroid Build Coastguard Worker %1 = fpext <4 x half> %a to <4 x double> 116*9880d681SAndroid Build Coastguard Worker ret <4 x double> %1 117*9880d681SAndroid Build Coastguard Worker} 118*9880d681SAndroid Build Coastguard Worker 119*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @bitcast_i_to_h(float, <4 x i16> %a) { 120*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bitcast_i_to_h: 121*9880d681SAndroid Build Coastguard Worker; CHECK: mov v0.16b, v1.16b 122*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x i16> %a to <4 x half> 123*9880d681SAndroid Build Coastguard Worker ret <4 x half> %2 124*9880d681SAndroid Build Coastguard Worker} 125*9880d681SAndroid Build Coastguard Worker 126*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @bitcast_h_to_i(float, <4 x half> %a) { 127*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bitcast_h_to_i: 128*9880d681SAndroid Build Coastguard Worker; CHECK: mov v0.16b, v1.16b 129*9880d681SAndroid Build Coastguard Worker %2 = bitcast <4 x half> %a to <4 x i16> 130*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %2 131*9880d681SAndroid Build Coastguard Worker} 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @sitofp_i8(<4 x i8> %a) #0 { 134*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sitofp_i8: 135*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: shl [[OP1:v[0-9]+\.4h]], v0.4h, #8 136*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: sshr [[OP2:v[0-9]+\.4h]], [[OP1]], #8 137*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: sshll [[OP3:v[0-9]+\.4s]], [[OP2]], #0 138*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: scvtf [[OP4:v[0-9]+\.4s]], [[OP3]] 139*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn v0.4h, [[OP4]] 140*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 141*9880d681SAndroid Build Coastguard Worker %1 = sitofp <4 x i8> %a to <4 x half> 142*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 143*9880d681SAndroid Build Coastguard Worker} 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @sitofp_i16(<4 x i16> %a) #0 { 147*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sitofp_i16: 148*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: sshll [[OP1:v[0-9]+\.4s]], v0.4h, #0 149*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: scvtf [[OP2:v[0-9]+\.4s]], [[OP1]] 150*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn v0.4h, [[OP2]] 151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 152*9880d681SAndroid Build Coastguard Worker %1 = sitofp <4 x i16> %a to <4 x half> 153*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 154*9880d681SAndroid Build Coastguard Worker} 155*9880d681SAndroid Build Coastguard Worker 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @sitofp_i32(<4 x i32> %a) #0 { 158*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sitofp_i32: 159*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: scvtf [[OP1:v[0-9]+\.4s]], v0.4s 160*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn v0.4h, [[OP1]] 161*9880d681SAndroid Build Coastguard Worker %1 = sitofp <4 x i32> %a to <4 x half> 162*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 163*9880d681SAndroid Build Coastguard Worker} 164*9880d681SAndroid Build Coastguard Worker 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @sitofp_i64(<4 x i64> %a) #0 { 167*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sitofp_i64: 168*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[OP1:v[0-9]+\.2d]], v0.2d 169*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: scvtf [[OP2:v[0-9]+\.2d]], v1.2d 170*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn [[OP3:v[0-9]+]].2s, [[OP1]] 171*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn2 [[OP3]].4s, [[OP2]] 172*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn v0.4h, [[OP3]].4s 173*9880d681SAndroid Build Coastguard Worker %1 = sitofp <4 x i64> %a to <4 x half> 174*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 175*9880d681SAndroid Build Coastguard Worker} 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @uitofp_i8(<4 x i8> %a) #0 { 178*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: uitofp_i8: 179*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: bic v0.4h, #255, lsl #8 180*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ushll [[OP1:v[0-9]+\.4s]], v0.4h, #0 181*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ucvtf [[OP2:v[0-9]+\.4s]], [[OP1]] 182*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn v0.4h, [[OP2]] 183*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 184*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i8> %a to <4 x half> 185*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 186*9880d681SAndroid Build Coastguard Worker} 187*9880d681SAndroid Build Coastguard Worker 188*9880d681SAndroid Build Coastguard Worker 189*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @uitofp_i16(<4 x i16> %a) #0 { 190*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: uitofp_i16: 191*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ushll [[OP1:v[0-9]+\.4s]], v0.4h, #0 192*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ucvtf [[OP2:v[0-9]+\.4s]], [[OP1]] 193*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn v0.4h, [[OP2]] 194*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 195*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i16> %a to <4 x half> 196*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 197*9880d681SAndroid Build Coastguard Worker} 198*9880d681SAndroid Build Coastguard Worker 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @uitofp_i32(<4 x i32> %a) #0 { 201*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: uitofp_i32: 202*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ucvtf [[OP1:v[0-9]+\.4s]], v0.4s 203*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn v0.4h, [[OP1]] 204*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i32> %a to <4 x half> 205*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 206*9880d681SAndroid Build Coastguard Worker} 207*9880d681SAndroid Build Coastguard Worker 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Workerdefine <4 x half> @uitofp_i64(<4 x i64> %a) #0 { 210*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: uitofp_i64: 211*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[OP1:v[0-9]+\.2d]], v0.2d 212*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: ucvtf [[OP2:v[0-9]+\.2d]], v1.2d 213*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvtn [[OP3:v[0-9]+]].2s, [[OP1]] 214*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn2 [[OP3]].4s, [[OP2]] 215*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtn v0.4h, [[OP3]].4s 216*9880d681SAndroid Build Coastguard Worker %1 = uitofp <4 x i64> %a to <4 x half> 217*9880d681SAndroid Build Coastguard Worker ret <4 x half> %1 218*9880d681SAndroid Build Coastguard Worker} 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Workerdefine void @test_insert_at_zero(half %a, <4 x half>* %b) #0 { 221*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_insert_at_zero: 222*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: str d0, [x0] 223*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 224*9880d681SAndroid Build Coastguard Worker %1 = insertelement <4 x half> undef, half %a, i64 0 225*9880d681SAndroid Build Coastguard Worker store <4 x half> %1, <4 x half>* %b, align 4 226*9880d681SAndroid Build Coastguard Worker ret void 227*9880d681SAndroid Build Coastguard Worker} 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Workerdefine <4 x i8> @fptosi_i8(<4 x half> %a) #0 { 230*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fptosi_i8: 231*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtl [[REG1:v[0-9]+\.4s]], v0.4h 232*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtzs [[REG2:v[0-9]+\.4s]], [[REG1]] 233*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xtn v0.4h, [[REG2]] 234*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 235*9880d681SAndroid Build Coastguard Worker %1 = fptosi<4 x half> %a to <4 x i8> 236*9880d681SAndroid Build Coastguard Worker ret <4 x i8> %1 237*9880d681SAndroid Build Coastguard Worker} 238*9880d681SAndroid Build Coastguard Worker 239*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @fptosi_i16(<4 x half> %a) #0 { 240*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fptosi_i16: 241*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtl [[REG1:v[0-9]+\.4s]], v0.4h 242*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtzs [[REG2:v[0-9]+\.4s]], [[REG1]] 243*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xtn v0.4h, [[REG2]] 244*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 245*9880d681SAndroid Build Coastguard Worker %1 = fptosi<4 x half> %a to <4 x i16> 246*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %1 247*9880d681SAndroid Build Coastguard Worker} 248*9880d681SAndroid Build Coastguard Worker 249*9880d681SAndroid Build Coastguard Workerdefine <4 x i8> @fptoui_i8(<4 x half> %a) #0 { 250*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fptoui_i8: 251*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtl [[REG1:v[0-9]+\.4s]], v0.4h 252*9880d681SAndroid Build Coastguard Worker; NOTE: fcvtzs selected here because the xtn shaves the sign bit 253*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtzs [[REG2:v[0-9]+\.4s]], [[REG1]] 254*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xtn v0.4h, [[REG2]] 255*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 256*9880d681SAndroid Build Coastguard Worker %1 = fptoui<4 x half> %a to <4 x i8> 257*9880d681SAndroid Build Coastguard Worker ret <4 x i8> %1 258*9880d681SAndroid Build Coastguard Worker} 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @fptoui_i16(<4 x half> %a) #0 { 261*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fptoui_i16: 262*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtl [[REG1:v[0-9]+\.4s]], v0.4h 263*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fcvtzu [[REG2:v[0-9]+\.4s]], [[REG1]] 264*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: xtn v0.4h, [[REG2]] 265*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 266*9880d681SAndroid Build Coastguard Worker %1 = fptoui<4 x half> %a to <4 x i16> 267*9880d681SAndroid Build Coastguard Worker ret <4 x i16> %1 268*9880d681SAndroid Build Coastguard Worker} 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 271*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_une: 272*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 273*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 274*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 275*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 276*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 277*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 278*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 279*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 280*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ne 281*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ne 282*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ne 283*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ne 284*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_une(<4 x half> %a, <4 x half> %b) #0 { 285*9880d681SAndroid Build Coastguard Worker %1 = fcmp une <4 x half> %a, %b 286*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 287*9880d681SAndroid Build Coastguard Worker} 288*9880d681SAndroid Build Coastguard Worker 289*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 290*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_ueq: 291*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 292*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 293*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 294*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 295*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 296*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 297*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 298*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 299*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm [[REG1:w[0-9]+]], eq 300*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm [[REG2:w[0-9]+]], eq 301*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm [[REG3:w[0-9]+]], eq 302*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm [[REG4:w[0-9]+]], eq 303*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csinv {{.*}}, [[REG1]], wzr, vc 304*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csinv {{.*}}, [[REG2]], wzr, vc 305*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csinv {{.*}}, [[REG3]], wzr, vc 306*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csinv {{.*}}, [[REG4]], wzr, vc 307*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_ueq(<4 x half> %a, <4 x half> %b) #0 { 308*9880d681SAndroid Build Coastguard Worker %1 = fcmp ueq <4 x half> %a, %b 309*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 310*9880d681SAndroid Build Coastguard Worker} 311*9880d681SAndroid Build Coastguard Worker 312*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 313*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_ugt: 314*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 315*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 316*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 317*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 318*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 319*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 320*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 321*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 322*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, hi 323*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, hi 324*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, hi 325*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, hi 326*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_ugt(<4 x half> %a, <4 x half> %b) #0 { 327*9880d681SAndroid Build Coastguard Worker %1 = fcmp ugt <4 x half> %a, %b 328*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 329*9880d681SAndroid Build Coastguard Worker} 330*9880d681SAndroid Build Coastguard Worker 331*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 332*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_uge: 333*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 334*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 335*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 336*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 337*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 338*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 339*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 340*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 341*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, pl 342*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, pl 343*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, pl 344*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, pl 345*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_uge(<4 x half> %a, <4 x half> %b) #0 { 346*9880d681SAndroid Build Coastguard Worker %1 = fcmp uge <4 x half> %a, %b 347*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 348*9880d681SAndroid Build Coastguard Worker} 349*9880d681SAndroid Build Coastguard Worker 350*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 351*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_ult: 352*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 353*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 354*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 355*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 356*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 357*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 358*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 359*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 360*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, lt 361*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, lt 362*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, lt 363*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, lt 364*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_ult(<4 x half> %a, <4 x half> %b) #0 { 365*9880d681SAndroid Build Coastguard Worker %1 = fcmp ult <4 x half> %a, %b 366*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 367*9880d681SAndroid Build Coastguard Worker} 368*9880d681SAndroid Build Coastguard Worker 369*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 370*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_ule: 371*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 372*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 373*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 374*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 375*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 376*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 377*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 378*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 379*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, le 380*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, le 381*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, le 382*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, le 383*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_ule(<4 x half> %a, <4 x half> %b) #0 { 384*9880d681SAndroid Build Coastguard Worker %1 = fcmp ule <4 x half> %a, %b 385*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 386*9880d681SAndroid Build Coastguard Worker} 387*9880d681SAndroid Build Coastguard Worker 388*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 389*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_uno: 390*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 391*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 392*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 393*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 394*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 395*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 396*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 397*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 398*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, vs 399*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, vs 400*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, vs 401*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, vs 402*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_uno(<4 x half> %a, <4 x half> %b) #0 { 403*9880d681SAndroid Build Coastguard Worker %1 = fcmp uno <4 x half> %a, %b 404*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 405*9880d681SAndroid Build Coastguard Worker} 406*9880d681SAndroid Build Coastguard Worker 407*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 408*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_one: 409*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 410*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 411*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 412*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 413*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 414*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 415*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 416*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 417*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm [[REG1:w[0-9]+]], mi 418*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm [[REG2:w[0-9]+]], mi 419*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm [[REG3:w[0-9]+]], mi 420*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm [[REG4:w[0-9]+]], mi 421*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csinv {{.*}}, [[REG1]], wzr, le 422*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csinv {{.*}}, [[REG2]], wzr, le 423*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csinv {{.*}}, [[REG3]], wzr, le 424*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csinv {{.*}}, [[REG4]], wzr, le 425*9880d681SAndroid Build Coastguard Worker 426*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_one(<4 x half> %a, <4 x half> %b) #0 { 427*9880d681SAndroid Build Coastguard Worker %1 = fcmp one <4 x half> %a, %b 428*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 429*9880d681SAndroid Build Coastguard Worker} 430*9880d681SAndroid Build Coastguard Worker 431*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 432*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_oeq: 433*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 434*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 435*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 436*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 437*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 438*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 439*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 440*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 441*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, eq 442*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, eq 443*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, eq 444*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, eq 445*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_oeq(<4 x half> %a, <4 x half> %b) #0 { 446*9880d681SAndroid Build Coastguard Worker %1 = fcmp oeq <4 x half> %a, %b 447*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 448*9880d681SAndroid Build Coastguard Worker} 449*9880d681SAndroid Build Coastguard Worker 450*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 451*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_ogt: 452*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 453*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 454*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 455*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 456*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 457*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 458*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 459*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 460*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, gt 461*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, gt 462*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, gt 463*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, gt 464*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_ogt(<4 x half> %a, <4 x half> %b) #0 { 465*9880d681SAndroid Build Coastguard Worker %1 = fcmp ogt <4 x half> %a, %b 466*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 467*9880d681SAndroid Build Coastguard Worker} 468*9880d681SAndroid Build Coastguard Worker 469*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 470*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_oge: 471*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 472*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 473*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 474*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 475*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 476*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 477*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 478*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 479*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ge 480*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ge 481*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ge 482*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ge 483*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_oge(<4 x half> %a, <4 x half> %b) #0 { 484*9880d681SAndroid Build Coastguard Worker %1 = fcmp oge <4 x half> %a, %b 485*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 486*9880d681SAndroid Build Coastguard Worker} 487*9880d681SAndroid Build Coastguard Worker 488*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 489*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_olt: 490*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 491*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 492*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 493*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 494*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 495*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 496*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 497*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 498*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, mi 499*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, mi 500*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, mi 501*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, mi 502*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_olt(<4 x half> %a, <4 x half> %b) #0 { 503*9880d681SAndroid Build Coastguard Worker %1 = fcmp olt <4 x half> %a, %b 504*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 505*9880d681SAndroid Build Coastguard Worker} 506*9880d681SAndroid Build Coastguard Worker 507*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 508*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_ole: 509*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 510*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 511*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 512*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 513*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 514*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 515*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 516*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 517*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ls 518*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ls 519*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ls 520*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, ls 521*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_ole(<4 x half> %a, <4 x half> %b) #0 { 522*9880d681SAndroid Build Coastguard Worker %1 = fcmp ole <4 x half> %a, %b 523*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 524*9880d681SAndroid Build Coastguard Worker} 525*9880d681SAndroid Build Coastguard Worker 526*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 527*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_fcmp_ord: 528*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 529*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 530*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 531*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 532*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 533*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 534*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 535*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: fcvt 536*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, vc 537*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, vc 538*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, vc 539*9880d681SAndroid Build Coastguard Worker; CHECK-DAG: csetm {{.*}}, vc 540*9880d681SAndroid Build Coastguard Workerdefine <4 x i1> @test_fcmp_ord(<4 x half> %a, <4 x half> %b) #0 { 541*9880d681SAndroid Build Coastguard Worker %1 = fcmp ord <4 x half> %a, %b 542*9880d681SAndroid Build Coastguard Worker ret <4 x i1> %1 543*9880d681SAndroid Build Coastguard Worker} 544*9880d681SAndroid Build Coastguard Worker 545*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind } 546