brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.6 KiB · 9fa26c7 Raw
280 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s | FileCheck %s3 4source_filename = "external/libaom/av1/encoder/tx_search.c"5target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"6target triple = "riscv64-unknown-linux-android10000"7 8define fastcc void @search_tx_type() #0 {9; CHECK-LABEL: search_tx_type:10; CHECK:       # %bb.0: # %._crit_edge.i11; CHECK-NEXT:  # %bb.1: # %bb12; CHECK-NEXT:    lbu a1, 0(zero)13; CHECK-NEXT:    lw a0, 0(zero)14; CHECK-NEXT:    lh a2, 0(zero)15; CHECK-NEXT:    seqz a1, a116; CHECK-NEXT:    srai a3, a0, 6317; CHECK-NEXT:    addi a1, a1, -118; CHECK-NEXT:    and a1, a1, a219; CHECK-NEXT:    andi a2, a1, 120; CHECK-NEXT:    addi a2, a2, -121; CHECK-NEXT:    or a3, a3, a022; CHECK-NEXT:    or a2, a2, a323; CHECK-NEXT:    bgez a2, .LBB0_324; CHECK-NEXT:  # %bb.2:25; CHECK-NEXT:    bexti a3, a1, 126; CHECK-NEXT:    addi a3, a3, -127; CHECK-NEXT:    and a2, a2, a328; CHECK-NEXT:  .LBB0_3: # %bb29; CHECK-NEXT:    andi a4, a1, 430; CHECK-NEXT:    mv a3, a231; CHECK-NEXT:    beqz a4, .LBB0_532; CHECK-NEXT:  # %bb.4: # %bb33; CHECK-NEXT:    mv a3, a034; CHECK-NEXT:  .LBB0_5: # %bb35; CHECK-NEXT:    blt a2, a0, .LBB0_736; CHECK-NEXT:  # %bb.6: # %bb37; CHECK-NEXT:    mv a3, a238; CHECK-NEXT:  .LBB0_7: # %bb39; CHECK-NEXT:    andi a5, a1, 840; CHECK-NEXT:    sext.w a4, a341; CHECK-NEXT:    mv a2, a342; CHECK-NEXT:    beqz a5, .LBB0_943; CHECK-NEXT:  # %bb.8: # %bb44; CHECK-NEXT:    mv a2, a045; CHECK-NEXT:  .LBB0_9: # %bb46; CHECK-NEXT:    blt a4, a0, .LBB0_1147; CHECK-NEXT:  # %bb.10: # %bb48; CHECK-NEXT:    mv a2, a349; CHECK-NEXT:  .LBB0_11: # %bb50; CHECK-NEXT:    andi a5, a1, 1651; CHECK-NEXT:    sext.w a4, a252; CHECK-NEXT:    mv a3, a253; CHECK-NEXT:    beqz a5, .LBB0_1354; CHECK-NEXT:  # %bb.12: # %bb55; CHECK-NEXT:    mv a3, a056; CHECK-NEXT:  .LBB0_13: # %bb57; CHECK-NEXT:    blt a4, a0, .LBB0_1558; CHECK-NEXT:  # %bb.14: # %bb59; CHECK-NEXT:    mv a3, a260; CHECK-NEXT:  .LBB0_15: # %bb61; CHECK-NEXT:    andi a5, a1, 3262; CHECK-NEXT:    sext.w a4, a363; CHECK-NEXT:    mv a2, a364; CHECK-NEXT:    beqz a5, .LBB0_1765; CHECK-NEXT:  # %bb.16: # %bb66; CHECK-NEXT:    mv a2, a067; CHECK-NEXT:  .LBB0_17: # %bb68; CHECK-NEXT:    blt a4, a0, .LBB0_1969; CHECK-NEXT:  # %bb.18: # %bb70; CHECK-NEXT:    mv a2, a371; CHECK-NEXT:  .LBB0_19: # %bb72; CHECK-NEXT:    andi a5, a1, 6473; CHECK-NEXT:    sext.w a4, a274; CHECK-NEXT:    mv a3, a275; CHECK-NEXT:    beqz a5, .LBB0_2176; CHECK-NEXT:  # %bb.20: # %bb77; CHECK-NEXT:    mv a3, a078; CHECK-NEXT:  .LBB0_21: # %bb79; CHECK-NEXT:    blt a4, a0, .LBB0_2380; CHECK-NEXT:  # %bb.22: # %bb81; CHECK-NEXT:    mv a3, a282; CHECK-NEXT:  .LBB0_23: # %bb83; CHECK-NEXT:    andi a5, a1, 12884; CHECK-NEXT:    sext.w a4, a385; CHECK-NEXT:    mv a2, a386; CHECK-NEXT:    beqz a5, .LBB0_2587; CHECK-NEXT:  # %bb.24: # %bb88; CHECK-NEXT:    mv a2, a089; CHECK-NEXT:  .LBB0_25: # %bb90; CHECK-NEXT:    blt a4, a0, .LBB0_2791; CHECK-NEXT:  # %bb.26: # %bb92; CHECK-NEXT:    mv a2, a393; CHECK-NEXT:  .LBB0_27: # %bb94; CHECK-NEXT:    andi a5, a1, 25695; CHECK-NEXT:    sext.w a4, a296; CHECK-NEXT:    mv a3, a297; CHECK-NEXT:    beqz a5, .LBB0_2998; CHECK-NEXT:  # %bb.28: # %bb99; CHECK-NEXT:    mv a3, a0100; CHECK-NEXT:  .LBB0_29: # %bb101; CHECK-NEXT:    blt a4, a0, .LBB0_31102; CHECK-NEXT:  # %bb.30: # %bb103; CHECK-NEXT:    mv a3, a2104; CHECK-NEXT:  .LBB0_31: # %bb105; CHECK-NEXT:    andi a5, a1, 512106; CHECK-NEXT:    sext.w a4, a3107; CHECK-NEXT:    mv a2, a3108; CHECK-NEXT:    beqz a5, .LBB0_33109; CHECK-NEXT:  # %bb.32: # %bb110; CHECK-NEXT:    mv a2, a0111; CHECK-NEXT:  .LBB0_33: # %bb112; CHECK-NEXT:    blt a4, a0, .LBB0_35113; CHECK-NEXT:  # %bb.34: # %bb114; CHECK-NEXT:    mv a2, a3115; CHECK-NEXT:  .LBB0_35: # %bb116; CHECK-NEXT:    andi a5, a1, 1024117; CHECK-NEXT:    sext.w a4, a2118; CHECK-NEXT:    mv a3, a2119; CHECK-NEXT:    beqz a5, .LBB0_37120; CHECK-NEXT:  # %bb.36: # %bb121; CHECK-NEXT:    mv a3, a0122; CHECK-NEXT:  .LBB0_37: # %bb123; CHECK-NEXT:    blt a4, a0, .LBB0_39124; CHECK-NEXT:  # %bb.38: # %bb125; CHECK-NEXT:    mv a3, a2126; CHECK-NEXT:  .LBB0_39: # %bb127; CHECK-NEXT:    slli a5, a1, 52128; CHECK-NEXT:    sext.w a4, a3129; CHECK-NEXT:    mv a2, a3130; CHECK-NEXT:    bgez a5, .LBB0_41131; CHECK-NEXT:  # %bb.40: # %bb132; CHECK-NEXT:    mv a2, a0133; CHECK-NEXT:  .LBB0_41: # %bb134; CHECK-NEXT:    blt a4, a0, .LBB0_43135; CHECK-NEXT:  # %bb.42: # %bb136; CHECK-NEXT:    mv a2, a3137; CHECK-NEXT:  .LBB0_43: # %bb138; CHECK-NEXT:    slli a4, a1, 51139; CHECK-NEXT:    sext.w a3, a2140; CHECK-NEXT:    mv a1, a2141; CHECK-NEXT:    bltz a4, .LBB0_49142; CHECK-NEXT:  # %bb.44: # %bb143; CHECK-NEXT:    bge a3, a0, .LBB0_50144; CHECK-NEXT:  .LBB0_45: # %bb145; CHECK-NEXT:    sext.w a2, a1146; CHECK-NEXT:    blt a2, a0, .LBB0_47147; CHECK-NEXT:  .LBB0_46: # %bb148; CHECK-NEXT:    mv a0, a1149; CHECK-NEXT:  .LBB0_47: # %bb150; CHECK-NEXT:    sext.w a0, a0151; CHECK-NEXT:  # %bb.48: # %get_tx_mask.exit152; CHECK-NEXT:    ret153; CHECK-NEXT:  .LBB0_49: # %bb154; CHECK-NEXT:    mv a1, a0155; CHECK-NEXT:    blt a3, a0, .LBB0_45156; CHECK-NEXT:  .LBB0_50: # %bb157; CHECK-NEXT:    mv a1, a2158; CHECK-NEXT:    sext.w a2, a2159; CHECK-NEXT:    bge a2, a0, .LBB0_46160; CHECK-NEXT:    j .LBB0_47161._crit_edge.i:162  %.in196.i = load i16, ptr null, align 2163  %i2 = load i16, ptr null, align 2164  %i3 = and i16 %i2, %.in196.i165  %i9 = trunc nuw i8 0 to i1166  br i1 %i9, label %get_tx_mask.exit, label %bb167 168bb:                                               ; preds = %._crit_edge.i169  %i13 = load i8, ptr null, align 1170  %i14 = icmp eq i8 %i13, 0171  %spec.select211.i = select i1 %i14, i16 0, i16 %i3172  %i19 = load i32, ptr null, align 4173  %i20 = zext i16 %spec.select211.i to i32174  %i21 = load i32, ptr null, align 4175  %i22 = icmp sgt i32 %i21, -1176  %i23 = and i32 %i20, 1177  %.not203.i = icmp eq i32 %i23, 0178  %spec.select212.i = select i1 %.not203.i, i32 -1, i32 %i21179  %.1174.i = select i1 %i22, i32 %spec.select212.i, i32 -1180  %i28 = icmp sgt i32 0, %.1174.i181  %i29 = and i32 %i20, 2182  %.not203.1.not.i = icmp eq i32 %i29, 0183  %spec.select212.1.i = select i1 %.not203.1.not.i, i32 %.1174.i, i32 0184  %.1174.1.i = select i1 %i28, i32 %spec.select212.1.i, i32 %.1174.i185  %i30 = load i32, ptr null, align 4186  %i31 = icmp sgt i32 %i30, %.1174.1.i187  %i32 = and i32 %i20, 4188  %.not203.2.i = icmp eq i32 %i32, 0189  %spec.select212.2.i = select i1 %.not203.2.i, i32 %.1174.1.i, i32 %i30190  %.1174.2.i = select i1 %i31, i32 %spec.select212.2.i, i32 %.1174.1.i191  %i36 = load i32, ptr null, align 4192  %i37 = icmp sgt i32 %i36, %.1174.2.i193  %i38 = and i32 %i20, 8194  %.not203.3.i = icmp eq i32 %i38, 0195  %spec.select212.3.i = select i1 %.not203.3.i, i32 %.1174.2.i, i32 %i36196  %.1174.3.i = select i1 %i37, i32 %spec.select212.3.i, i32 %.1174.2.i197  %i42 = load i32, ptr null, align 4198  %i43 = icmp sgt i32 %i42, %.1174.3.i199  %i44 = and i32 %i20, 16200  %.not203.4.i = icmp eq i32 %i44, 0201  %spec.select212.4.i = select i1 %.not203.4.i, i32 %.1174.3.i, i32 %i42202  %.1174.4.i = select i1 %i43, i32 %spec.select212.4.i, i32 %.1174.3.i203  %i48 = load i32, ptr null, align 4204  %i49 = icmp sgt i32 %i48, %.1174.4.i205  %i50 = and i32 %i20, 32206  %.not203.5.i = icmp eq i32 %i50, 0207  %spec.select212.5.i = select i1 %.not203.5.i, i32 %.1174.4.i, i32 %i48208  %.1174.5.i = select i1 %i49, i32 %spec.select212.5.i, i32 %.1174.4.i209  %i51 = load i32, ptr null, align 4210  %i52 = icmp sgt i32 %i51, %.1174.5.i211  %i53 = and i32 %i20, 64212  %.not203.6.i = icmp eq i32 %i53, 0213  %spec.select212.6.i = select i1 %.not203.6.i, i32 %.1174.5.i, i32 %i51214  %.1174.6.i = select i1 %i52, i32 %spec.select212.6.i, i32 %.1174.5.i215  %i56 = load i32, ptr null, align 4216  %i57 = icmp sgt i32 %i56, %.1174.6.i217  %i58 = and i32 %i20, 128218  %.not203.7.i = icmp eq i32 %i58, 0219  %spec.select212.7.i = select i1 %.not203.7.i, i32 %.1174.6.i, i32 %i56220  %.1174.7.i = select i1 %i57, i32 %spec.select212.7.i, i32 %.1174.6.i221  %i60 = load i32, ptr null, align 4222  %i61 = icmp sgt i32 %i60, %.1174.7.i223  %i62 = and i32 %i20, 256224  %.not203.8.i = icmp eq i32 %i62, 0225  %spec.select212.8.i = select i1 %.not203.8.i, i32 %.1174.7.i, i32 %i60226  %.1174.8.i = select i1 %i61, i32 %spec.select212.8.i, i32 %.1174.7.i227  %i63 = load i32, ptr null, align 4228  %i64 = icmp sgt i32 %i63, %.1174.8.i229  %i65 = and i32 %i20, 512230  %.not203.9.i = icmp eq i32 %i65, 0231  %spec.select212.9.i = select i1 %.not203.9.i, i32 %.1174.8.i, i32 %i63232  %.1174.9.i = select i1 %i64, i32 %spec.select212.9.i, i32 %.1174.8.i233  %i67 = load i32, ptr null, align 4234  %i68 = icmp sgt i32 %i67, %.1174.9.i235  %i69 = and i32 %i20, 1024236  %.not203.10.i = icmp eq i32 %i69, 0237  %spec.select212.10.i = select i1 %.not203.10.i, i32 %.1174.9.i, i32 %i67238  %.1174.10.i = select i1 %i68, i32 %spec.select212.10.i, i32 %.1174.9.i239  %i70 = load i32, ptr null, align 4240  %i71 = icmp sgt i32 %i70, %.1174.10.i241  %i72 = and i32 %i20, 2048242  %.not203.11.i = icmp eq i32 %i72, 0243  %spec.select212.11.i = select i1 %.not203.11.i, i32 %.1174.10.i, i32 %i70244  %.1174.11.i = select i1 %i71, i32 %spec.select212.11.i, i32 %.1174.10.i245  %i75 = load i32, ptr null, align 4246  %i76 = icmp sgt i32 %i75, %.1174.11.i247  %i77 = and i32 %i20, 4096248  %.not203.12.i = icmp eq i32 %i77, 0249  %spec.select212.12.i = select i1 %.not203.12.i, i32 %.1174.11.i, i32 %i75250  %.1174.12.i = select i1 %i76, i32 %spec.select212.12.i, i32 %.1174.11.i251  %i80 = load i32, ptr null, align 4252  %i81 = icmp sgt i32 %i80, %.1174.12.i253  %spec.select212.13.i = select i1 false, i32 %.1174.12.i, i32 %i80254  %.1174.13.i = select i1 %i81, i32 %spec.select212.13.i, i32 %.1174.12.i255  %.1172.13.i = select i1 %i81, i32 13, i32 0256  %i84 = icmp sgt i32 0, %.1174.13.i257  %.1172.14.i = select i1 %i84, i32 14, i32 %.1172.13.i258  %i88 = icmp slt i32 0, %i19259  %i89 = select i1 %i88, i16 -32768, i16 0260  %i90 = zext i16 %i89 to i32261  %i91 = shl nuw nsw i32 1, %.1172.14.i262  %i92 = and i32 %i91, %i90263  %.not200.i = icmp eq i32 %i92, 0264  %i93 = trunc nuw i32 %i91 to i16265  %i94 = xor i16 %i93, -1266  %i95 = select i1 %.not200.i, i16 -1, i16 %i94267  %.2177.i = and i16 %i95, %i89268  %i96 = xor i16 %.2177.i, -1269  %i97 = and i16 %spec.select211.i, %i96270  br label %get_tx_mask.exit271 272get_tx_mask.exit:                                 ; preds = %._crit_edge.i, %bb273  %.1261.i = phi i16 [ %i97, %bb ], [ 0, %._crit_edge.i ]274  %i99 = icmp eq i16 %.1261.i, 0275  %.2262.i = select i1 %i99, i16 0, i16 %.1261.i276  ret void277}278 279attributes #0 = { noimplicitfloat nounwind sspstrong uwtable vscale_range(2,1024) "frame-pointer"="non-leaf" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="generic-rv64" "target-features"="+64bit,+a,+b,+c,+d,+f,+m,+relax,+unaligned-scalar-mem,+unaligned-vector-mem,+v,+zaamo,+zalrsc,+zba,+zbb,+zbs,+zca,+zcd,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl32b,+zvl64b,-e,-experimental-p,-experimental-smctr,-experimental-ssctr,-experimental-svukte,-experimental-xqccmp,-experimental-xqcia,-experimental-xqciac,-experimental-xqcibi,-experimental-xqcibm,-experimental-xqcicli,-experimental-xqcicm,-experimental-xqcics,-experimental-xqcicsr,-experimental-xqciint,-experimental-xqciio,-experimental-xqcilb,-experimental-xqcili,-experimental-xqcilia,-experimental-xqcilo,-experimental-xqcilsm,-experimental-xqcisim,-experimental-xqcisls,-experimental-xqcisync,-experimental-xrivosvisni,-experimental-xrivosvizip,-experimental-xsfmclic,-experimental-xsfsclic,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-experimental-zvbc32e,-experimental-zvkgs,-experimental-zvqdotq,-h,-q,-sdext,-sdtrig,-sha,-shcounterenw,-shgatpa,-shlcofideleg,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcntrpmf,-smcsrind,-smdbltrp,-smepmp,-smmpm,-smnpm,-smrnmi,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssdbltrp,-ssnpm,-sspm,-ssqosid,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-supm,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-svvptc,-xandesperf,-xandesvbfhcvt,-xandesvdot,-xandesvpackfph,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xmipscmov,-xmipslsp,-xsfcease,-xsfmm128t,-xsfmm16t,-xsfmm32a16f,-xsfmm32a32f,-xsfmm32a8f,-xsfmm32a8i,-xsfmm32t,-xsfmm64a64f,-xsfmm64t,-xsfmmbase,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zabha,-zacas,-zama16b,-zawrs,-zbc,-zbkb,-zbkc,-zbkx,-zcb,-zce,-zcf,-zclsd,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccamoc,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zihintntl,-zihintpause,-zihpm,-zilsd,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl4096b,-zvl512b,-zvl65536b,-zvl8192b" }280