brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.5 KiB · ce47bc4 Raw
294 lines · plain
1; RUN: llc                               -aarch64-enable-atomic-cfg-tidy=0 -mtriple=aarch64-apple-darwin < %s | FileCheck %s2; RUN: llc -fast-isel -fast-isel-abort=1 -aarch64-enable-atomic-cfg-tidy=0 -mtriple=aarch64-apple-darwin < %s | FileCheck %s3 4define i32 @fcmp_oeq(float %x, float %y) {5; CHECK-LABEL: fcmp_oeq6; CHECK:       fcmp s0, s17; CHECK-NEXT:  b.ne {{LBB.+_2}}8  %1 = fcmp oeq float %x, %y9  br i1 %1, label %bb1, label %bb210bb2:11  ret i32 112bb1:13  ret i32 014}15 16define i32 @fcmp_ogt(float %x, float %y) {17; CHECK-LABEL: fcmp_ogt18; CHECK:       fcmp s0, s119; CHECK-NEXT:  b.le {{LBB.+_2}}20  %1 = fcmp ogt float %x, %y21  br i1 %1, label %bb1, label %bb222bb2:23  ret i32 124bb1:25  ret i32 026}27 28define i32 @fcmp_oge(float %x, float %y) {29; CHECK-LABEL: fcmp_oge30; CHECK:       fcmp s0, s131; CHECK-NEXT:  b.lt {{LBB.+_2}}32  %1 = fcmp oge float %x, %y33  br i1 %1, label %bb1, label %bb234bb2:35  ret i32 136bb1:37  ret i32 038}39 40define i32 @fcmp_olt(float %x, float %y) {41; CHECK-LABEL: fcmp_olt42; CHECK:       fcmp s0, s143; CHECK-NEXT:  b.pl {{LBB.+_2}}44  %1 = fcmp olt float %x, %y45  br i1 %1, label %bb1, label %bb246bb2:47  ret i32 148bb1:49  ret i32 050}51 52define i32 @fcmp_ole(float %x, float %y) {53; CHECK-LABEL: fcmp_ole54; CHECK:       fcmp s0, s155; CHECK-NEXT:  b.hi {{LBB.+_2}}56  %1 = fcmp ole float %x, %y57  br i1 %1, label %bb1, label %bb258bb2:59  ret i32 160bb1:61  ret i32 062}63 64define i32 @fcmp_one(float %x, float %y) {65; CHECK-LABEL: fcmp_one66; CHECK:       fcmp s0, s167; CHECK-NEXT:  b.mi68; CHECK-NEXT:  b.gt69  %1 = fcmp one float %x, %y70  br i1 %1, label %bb1, label %bb271bb2:72  ret i32 173bb1:74  ret i32 075}76 77define i32 @fcmp_ord(float %x, float %y) {78; CHECK-LABEL: fcmp_ord79; CHECK:       fcmp s0, s180; CHECK-NEXT:  b.vs {{LBB.+_2}}81  %1 = fcmp ord float %x, %y82  br i1 %1, label %bb1, label %bb283bb2:84  ret i32 185bb1:86  ret i32 087}88 89define i32 @fcmp_uno(float %x, float %y) {90; CHECK-LABEL: fcmp_uno91; CHECK:       fcmp s0, s192; CHECK-NEXT:  b.vs {{LBB.+_2}}93  %1 = fcmp uno float %x, %y94  br i1 %1, label %bb1, label %bb295bb2:96  ret i32 197bb1:98  ret i32 099}100 101define i32 @fcmp_ueq(float %x, float %y) {102; CHECK-LABEL: fcmp_ueq103; CHECK:       fcmp s0, s1104; CHECK-NEXT:  b.eq {{LBB.+_2}}105; CHECK-NEXT:  b.vs {{LBB.+_2}}106  %1 = fcmp ueq float %x, %y107  br i1 %1, label %bb1, label %bb2108bb2:109  ret i32 1110bb1:111  ret i32 0112}113 114define i32 @fcmp_ugt(float %x, float %y) {115; CHECK-LABEL: fcmp_ugt116; CHECK:       fcmp s0, s1117; CHECK-NEXT:  b.ls {{LBB.+_2}}118  %1 = fcmp ugt float %x, %y119  br i1 %1, label %bb1, label %bb2120bb2:121  ret i32 1122bb1:123  ret i32 0124}125 126define i32 @fcmp_uge(float %x, float %y) {127; CHECK-LABEL: fcmp_uge128; CHECK:       fcmp s0, s1129; CHECK-NEXT:  b.mi {{LBB.+_2}}130  %1 = fcmp uge float %x, %y131  br i1 %1, label %bb1, label %bb2132bb2:133  ret i32 1134bb1:135  ret i32 0136}137 138define i32 @fcmp_ult(float %x, float %y) {139; CHECK-LABEL: fcmp_ult140; CHECK:       fcmp s0, s1141; CHECK-NEXT:  b.ge {{LBB.+_2}}142  %1 = fcmp ult float %x, %y143  br i1 %1, label %bb1, label %bb2144bb2:145  ret i32 1146bb1:147  ret i32 0148}149 150define i32 @fcmp_ule(float %x, float %y) {151; CHECK-LABEL: fcmp_ule152; CHECK:       fcmp s0, s1153; CHECK-NEXT:  b.gt {{LBB.+_2}}154  %1 = fcmp ule float %x, %y155  br i1 %1, label %bb1, label %bb2156bb2:157  ret i32 1158bb1:159  ret i32 0160}161 162define i32 @fcmp_une(float %x, float %y) {163; CHECK-LABEL: fcmp_une164; CHECK:       fcmp s0, s1165; CHECK-NEXT:  b.eq {{LBB.+_2}}166  %1 = fcmp une float %x, %y167  br i1 %1, label %bb1, label %bb2168bb2:169  ret i32 1170bb1:171  ret i32 0172}173 174define i32 @icmp_eq(i32 %x, i32 %y) {175; CHECK-LABEL: icmp_eq176; CHECK:       cmp w0, w1177; CHECK-NEXT:  b.ne {{LBB.+_2}}178  %1 = icmp eq i32 %x, %y179  br i1 %1, label %bb1, label %bb2180bb2:181  ret i32 1182bb1:183  ret i32 0184}185 186define i32 @icmp_ne(i32 %x, i32 %y) {187; CHECK-LABEL: icmp_ne188; CHECK:       cmp w0, w1189; CHECK-NEXT:  b.eq {{LBB.+_2}}190  %1 = icmp ne i32 %x, %y191  br i1 %1, label %bb1, label %bb2192bb2:193  ret i32 1194bb1:195  ret i32 0196}197 198define i32 @icmp_ugt(i32 %x, i32 %y) {199; CHECK-LABEL: icmp_ugt200; CHECK:       cmp w0, w1201; CHECK-NEXT:  b.ls {{LBB.+_2}}202  %1 = icmp ugt i32 %x, %y203  br i1 %1, label %bb1, label %bb2204bb2:205  ret i32 1206bb1:207  ret i32 0208}209 210define i32 @icmp_uge(i32 %x, i32 %y) {211; CHECK-LABEL: icmp_uge212; CHECK:       cmp w0, w1213; CHECK-NEXT:  b.lo {{LBB.+_2}}214  %1 = icmp uge i32 %x, %y215  br i1 %1, label %bb1, label %bb2216bb2:217  ret i32 1218bb1:219  ret i32 0220}221 222define i32 @icmp_ult(i32 %x, i32 %y) {223; CHECK-LABEL: icmp_ult224; CHECK:       cmp w0, w1225; CHECK-NEXT:  b.hs {{LBB.+_2}}226  %1 = icmp ult i32 %x, %y227  br i1 %1, label %bb1, label %bb2228bb2:229  ret i32 1230bb1:231  ret i32 0232}233 234define i32 @icmp_ule(i32 %x, i32 %y) {235; CHECK-LABEL: icmp_ule236; CHECK:       cmp w0, w1237; CHECK-NEXT:  b.hi {{LBB.+_2}}238  %1 = icmp ule i32 %x, %y239  br i1 %1, label %bb1, label %bb2240bb2:241  ret i32 1242bb1:243  ret i32 0244}245 246define i32 @icmp_sgt(i32 %x, i32 %y) {247; CHECK-LABEL: icmp_sgt248; CHECK:       cmp w0, w1249; CHECK-NEXT:  b.le {{LBB.+_2}}250  %1 = icmp sgt i32 %x, %y251  br i1 %1, label %bb1, label %bb2252bb2:253  ret i32 1254bb1:255  ret i32 0256}257 258define i32 @icmp_sge(i32 %x, i32 %y) {259; CHECK-LABEL: icmp_sge260; CHECK:       cmp w0, w1261; CHECK-NEXT:  b.lt {{LBB.+_2}}262  %1 = icmp sge i32 %x, %y263  br i1 %1, label %bb1, label %bb2264bb2:265  ret i32 1266bb1:267  ret i32 0268}269 270define i32 @icmp_slt(i32 %x, i32 %y) {271; CHECK-LABEL: icmp_slt272; CHECK:       cmp w0, w1273; CHECK-NEXT:  b.ge {{LBB.+_2}}274  %1 = icmp slt i32 %x, %y275  br i1 %1, label %bb1, label %bb2276bb2:277  ret i32 1278bb1:279  ret i32 0280}281 282define i32 @icmp_sle(i32 %x, i32 %y) {283; CHECK-LABEL: icmp_sle284; CHECK:       cmp w0, w1285; CHECK-NEXT:  b.gt {{LBB.+_2}}286  %1 = icmp sle i32 %x, %y287  br i1 %1, label %bb1, label %bb2288bb2:289  ret i32 1290bb1:291  ret i32 0292}293 294