brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.9 KiB · 0b41c73 Raw
303 lines · plain
1; RUN: llc < %s -mtriple=arm-eabi -mattr=+v8.2a,+neon,+fullfp16 -float-abi=hard | FileCheck %s2; RUN: llc < %s -mtriple=thumbv7a -mattr=+v8.2a,+neon,+fullfp16 -float-abi=hard | FileCheck %s3 4; 4-element vector5 6; Ordered7 8define <4 x half> @test1(<4 x half> %A, <4 x half> %B) {9; CHECK-LABEL: test1:10; CHECK:         vmaxnm.f16 d0, d0, d111; CHECK-NEXT:    bx lr12  %tmp3 = fcmp fast ogt <4 x half> %A, %B13  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %A, <4 x half> %B14  ret <4 x half> %tmp415}16 17define <4 x half> @test2(<4 x half> %A, <4 x half> %B) {18; CHECK-LABEL: test2:19; CHECK:         vminnm.f16 d0, d0, d120; CHECK-NEXT:    bx lr21  %tmp3 = fcmp fast ogt <4 x half> %A, %B22  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %B, <4 x half> %A23  ret <4 x half> %tmp424}25 26define <4 x half> @test3(<4 x half> %A, <4 x half> %B) {27; CHECK-LABEL: test3:28; CHECK:         vminnm.f16 d0, d0, d129; CHECK-NEXT:    bx lr30  %tmp3 = fcmp fast oge <4 x half> %A, %B31  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %B, <4 x half> %A32  ret <4 x half> %tmp433}34 35define <4 x half> @test4(<4 x half> %A, <4 x half> %B) {36; CHECK-LABEL: test4:37; CHECK:         vmaxnm.f16 d0, d0, d138; CHECK-NEXT:    bx lr39  %tmp3 = fcmp fast oge <4 x half> %A, %B40  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %A, <4 x half> %B41  ret <4 x half> %tmp442}43 44define <4 x half> @test5(<4 x half> %A, <4 x half> %B) {45; CHECK-LABEL: test5:46; CHECK:         vminnm.f16 d0, d0, d147; CHECK-NEXT:    bx lr48  %tmp3 = fcmp fast olt <4 x half> %A, %B49  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %A, <4 x half> %B50  ret <4 x half> %tmp451}52 53define <4 x half> @test6(<4 x half> %A, <4 x half> %B) {54; CHECK-LABEL: test6:55; CHECK:         vmaxnm.f16 d0, d0, d156; CHECK-NEXT:    bx lr57  %tmp3 = fcmp fast olt <4 x half> %A, %B58  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %B, <4 x half> %A59  ret <4 x half> %tmp460}61 62define <4 x half> @test7(<4 x half> %A, <4 x half> %B) {63; CHECK-LABEL: test7:64; CHECK:         vminnm.f16 d0, d0, d165; CHECK-NEXT:    bx lr66  %tmp3 = fcmp fast ole <4 x half> %A, %B67  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %A, <4 x half> %B68  ret <4 x half> %tmp469}70 71define <4 x half> @test8(<4 x half> %A, <4 x half> %B) {72; CHECK-LABEL: test8:73; CHECK:         vmaxnm.f16 d0, d0, d174; CHECK-NEXT:    bx lr75  %tmp3 = fcmp fast ole <4 x half> %A, %B76  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %B, <4 x half> %A77  ret <4 x half> %tmp478}79 80; Unordered81 82define <4 x half> @test11(<4 x half> %A, <4 x half> %B) {83; CHECK-LABEL: test11:84; CHECK:         vmaxnm.f16 d0, d0, d185; CHECK-NEXT:    bx lr86  %tmp3 = fcmp fast ugt <4 x half> %A, %B87  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %A, <4 x half> %B88  ret <4 x half> %tmp489}90 91define <4 x half> @test12(<4 x half> %A, <4 x half> %B) {92; CHECK-LABEL: test12:93; CHECK:         vminnm.f16 d0, d0, d194; CHECK-NEXT:    bx lr95  %tmp3 = fcmp fast ugt <4 x half> %A, %B96  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %B, <4 x half> %A97  ret <4 x half> %tmp498}99 100define <4 x half> @test13(<4 x half> %A, <4 x half> %B) {101; CHECK-LABEL: test13:102; CHECK:         vminnm.f16 d0, d0, d1103; CHECK-NEXT:    bx lr104  %tmp3 = fcmp fast uge <4 x half> %A, %B105  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %B, <4 x half> %A106  ret <4 x half> %tmp4107}108 109define <4 x half> @test14(<4 x half> %A, <4 x half> %B) {110; CHECK-LABEL: test14:111; CHECK:         vmaxnm.f16 d0, d0, d1112; CHECK-NEXT:    bx lr113  %tmp3 = fcmp fast uge <4 x half> %A, %B114  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %A, <4 x half> %B115  ret <4 x half> %tmp4116}117 118define <4 x half> @test15(<4 x half> %A, <4 x half> %B) {119; CHECK-LABEL: test15:120; CHECK:         vminnm.f16 d0, d0, d1121; CHECK-NEXT:    bx lr122  %tmp3 = fcmp fast ult <4 x half> %A, %B123  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %A, <4 x half> %B124  ret <4 x half> %tmp4125}126 127define <4 x half> @test16(<4 x half> %A, <4 x half> %B) {128; CHECK-LABEL: test16:129; CHECK:         vmaxnm.f16 d0, d0, d1130; CHECK-NEXT:    bx lr131  %tmp3 = fcmp fast ult <4 x half> %A, %B132  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %B, <4 x half> %A133  ret <4 x half> %tmp4134}135 136define <4 x half> @test17(<4 x half> %A, <4 x half> %B) {137; CHECK-LABEL: test17:138; CHECK:         vminnm.f16 d0, d0, d1139; CHECK-NEXT:    bx lr140  %tmp3 = fcmp fast ule <4 x half> %A, %B141  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %A, <4 x half> %B142  ret <4 x half> %tmp4143}144 145define <4 x half> @test18(<4 x half> %A, <4 x half> %B) {146; CHECK-LABEL: test18:147; CHECK:         vmaxnm.f16 d0, d0, d1148; CHECK-NEXT:    bx lr149  %tmp3 = fcmp fast ule <4 x half> %A, %B150  %tmp4 = select nsz <4 x i1> %tmp3, <4 x half> %B, <4 x half> %A151  ret <4 x half> %tmp4152}153 154; 8-element vector155 156; Ordered157 158define <8 x half> @test201(<8 x half> %A, <8 x half> %B) {159; CHECK-LABEL: test201:160; CHECK:         vmaxnm.f16 q0, q0, q1161; CHECK-NEXT:    bx lr162  %tmp3 = fcmp fast ogt <8 x half> %A, %B163  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %A, <8 x half> %B164  ret <8 x half> %tmp4165}166 167define <8 x half> @test202(<8 x half> %A, <8 x half> %B) {168; CHECK-LABEL: test202:169; CHECK:         vminnm.f16 q0, q0, q1170; CHECK-NEXT:    bx lr171  %tmp3 = fcmp fast ogt <8 x half> %A, %B172  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %B, <8 x half> %A173  ret <8 x half> %tmp4174}175 176define <8 x half> @test203(<8 x half> %A, <8 x half> %B) {177; CHECK-LABEL: test203:178; CHECK:         vmaxnm.f16 q0, q0, q1179; CHECK-NEXT:    bx lr180  %tmp3 = fcmp fast oge <8 x half> %A, %B181  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %A, <8 x half> %B182  ret <8 x half> %tmp4183}184 185define <8 x half> @test204(<8 x half> %A, <8 x half> %B) {186; CHECK-LABEL: test204:187; CHECK:         vminnm.f16 q0, q0, q1188; CHECK-NEXT:    bx lr189  %tmp3 = fcmp fast oge <8 x half> %A, %B190  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %B, <8 x half> %A191  ret <8 x half> %tmp4192}193 194define <8 x half> @test205(<8 x half> %A, <8 x half> %B) {195; CHECK-LABEL: test205:196; CHECK:         vminnm.f16 q0, q0, q1197; CHECK-NEXT:    bx lr198  %tmp3 = fcmp fast olt <8 x half> %A, %B199  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %A, <8 x half> %B200  ret <8 x half> %tmp4201}202 203define <8 x half> @test206(<8 x half> %A, <8 x half> %B) {204; CHECK-LABEL: test206:205; CHECK:         vmaxnm.f16 q0, q0, q1206; CHECK-NEXT:    bx lr207  %tmp3 = fcmp fast olt <8 x half> %A, %B208  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %B, <8 x half> %A209  ret <8 x half> %tmp4210}211 212define <8 x half> @test207(<8 x half> %A, <8 x half> %B) {213; CHECK-LABEL: test207:214; CHECK:         vminnm.f16 q0, q0, q1215; CHECK-NEXT:    bx lr216  %tmp3 = fcmp fast ole <8 x half> %A, %B217  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %A, <8 x half> %B218  ret <8 x half> %tmp4219}220 221define <8 x half> @test208(<8 x half> %A, <8 x half> %B) {222; CHECK-LABEL: test208:223; CHECK:         vmaxnm.f16 q0, q0, q1224; CHECK-NEXT:    bx lr225  %tmp3 = fcmp fast ole <8 x half> %A, %B226  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %B, <8 x half> %A227  ret <8 x half> %tmp4228}229 230; Unordered231 232define <8 x half> @test209(<8 x half> %A, <8 x half> %B) {233; CHECK-LABEL: test209:234; CHECK:         vmaxnm.f16 q0, q0, q1235; CHECK-NEXT:    bx lr236  %tmp3 = fcmp fast ugt <8 x half> %A, %B237  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %A, <8 x half> %B238  ret <8 x half> %tmp4239}240 241define <8 x half> @test210(<8 x half> %A, <8 x half> %B) {242; CHECK-LABEL: test210:243; CHECK:         vminnm.f16 q0, q0, q1244; CHECK-NEXT:    bx lr245  %tmp3 = fcmp fast ugt <8 x half> %A, %B246  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %B, <8 x half> %A247  ret <8 x half> %tmp4248}249 250define <8 x half> @test211(<8 x half> %A, <8 x half> %B) {251; CHECK-LABEL: test211:252; CHECK:         vmaxnm.f16 q0, q0, q1253; CHECK-NEXT:    bx lr254  %tmp3 = fcmp fast uge <8 x half> %A, %B255  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %A, <8 x half> %B256  ret <8 x half> %tmp4257}258 259define <8 x half> @test214(<8 x half> %A, <8 x half> %B) {260; CHECK-LABEL: test214:261; CHECK:         vminnm.f16 q0, q0, q1262; CHECK-NEXT:    bx lr263  %tmp3 = fcmp fast uge <8 x half> %A, %B264  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %B, <8 x half> %A265  ret <8 x half> %tmp4266}267 268define <8 x half> @test215(<8 x half> %A, <8 x half> %B) {269; CHECK-LABEL: test215:270; CHECK:         vminnm.f16 q0, q0, q1271; CHECK-NEXT:    bx lr272  %tmp3 = fcmp fast ult <8 x half> %A, %B273  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %A, <8 x half> %B274  ret <8 x half> %tmp4275}276 277define <8 x half> @test216(<8 x half> %A, <8 x half> %B) {278; CHECK-LABEL: test216:279; CHECK:         vmaxnm.f16 q0, q0, q1280; CHECK-NEXT:    bx lr281  %tmp3 = fcmp fast ult <8 x half> %A, %B282  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %B, <8 x half> %A283  ret <8 x half> %tmp4284}285 286define <8 x half> @test217(<8 x half> %A, <8 x half> %B) {287; CHECK-LABEL: test217:288; CHECK:         vminnm.f16 q0, q0, q1289; CHECK-NEXT:    bx lr290  %tmp3 = fcmp fast ule <8 x half> %A, %B291  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %A, <8 x half> %B292  ret <8 x half> %tmp4293}294 295define <8 x half> @test218(<8 x half> %A, <8 x half> %B) {296; CHECK-LABEL: test218:297; CHECK:         vmaxnm.f16 q0, q0, q1298; CHECK-NEXT:    bx lr299  %tmp3 = fcmp fast ule <8 x half> %A, %B300  %tmp4 = select nsz <8 x i1> %tmp3, <8 x half> %B, <8 x half> %A301  ret <8 x half> %tmp4302}303