brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.7 KiB · 26f3fca Raw
264 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt -S -mtriple=riscv64-unknown-linux-gnu -slp-threshold=-100 -mattr=+v < %s | FileCheck %s3 4define void @test1() personality ptr null {5; CHECK-LABEL: define void @test1(6; CHECK-SAME: ) #[[ATTR0:[0-9]+]] personality ptr null {7; CHECK-NEXT:  entry:8; CHECK-NEXT:    [[CALL33:%.*]] = invoke ptr null(i64 0, ptr null)9; CHECK-NEXT:            to label [[INVOKE_CONT32:%.*]] unwind label [[LPAD31_LOOPEXIT:%.*]]10; CHECK:       invoke.cont32:11; CHECK-NEXT:    invoke void null(ptr null, ptr null)12; CHECK-NEXT:            to label [[INVOKE_CONT37:%.*]] unwind label [[LPAD34_LOOPEXIT:%.*]]13; CHECK:       invoke.cont37:14; CHECK-NEXT:    unreachable15; CHECK:       lpad31.loopexit:16; CHECK-NEXT:    [[LPAD_LOOPEXIT:%.*]] = landingpad { ptr, i32 }17; CHECK-NEXT:            cleanup18; CHECK-NEXT:    br label [[EHCLEANUP47:%.*]]19; CHECK:       lpad34.loopexit:20; CHECK-NEXT:    [[DOTLCSSA101:%.*]] = phi ptr [ null, [[INVOKE_CONT32]] ]21; CHECK-NEXT:    [[CALL33_LCSSA96:%.*]] = phi ptr [ [[CALL33]], [[INVOKE_CONT32]] ]22; CHECK-NEXT:    [[LPAD_LOOPEXIT56:%.*]] = landingpad { ptr, i32 }23; CHECK-NEXT:            cleanup24; CHECK-NEXT:    br label [[LPAD34_BODY:%.*]]25; CHECK:       lpad34.loopexit.split-lp:26; CHECK-NEXT:    [[LPAD_LOOPEXIT_SPLIT_LP57:%.*]] = landingpad { ptr, i32 }27; CHECK-NEXT:            cleanup28; CHECK-NEXT:    br label [[LPAD34_BODY]]29; CHECK:       lpad34.body:30; CHECK-NEXT:    [[TMP0:%.*]] = phi ptr [ [[DOTLCSSA101]], [[LPAD34_LOOPEXIT]] ], [ null, [[LPAD34_LOOPEXIT_SPLIT_LP:%.*]] ]31; CHECK-NEXT:    [[CALL3399:%.*]] = phi ptr [ [[CALL33_LCSSA96]], [[LPAD34_LOOPEXIT]] ], [ null, [[LPAD34_LOOPEXIT_SPLIT_LP]] ]32; CHECK-NEXT:    br label [[EHCLEANUP47]]33; CHECK:       ehcleanup47:34; CHECK-NEXT:    resume { ptr, i32 } zeroinitializer35;36entry:37  %call33 = invoke ptr null(i64 0, ptr null)38  to label %invoke.cont32 unwind label %lpad31.loopexit39 40invoke.cont32:41  invoke void null(ptr null, ptr null)42  to label %invoke.cont37 unwind label %lpad34.loopexit43 44invoke.cont37:45  unreachable46 47lpad31.loopexit:48  %lpad.loopexit = landingpad { ptr, i32 }49  cleanup50  br label %ehcleanup4751 52lpad34.loopexit:53  %.lcssa101 = phi ptr [ null, %invoke.cont32 ]54  %call33.lcssa96 = phi ptr [ %call33, %invoke.cont32 ]55  %lpad.loopexit56 = landingpad { ptr, i32 }56  cleanup57  br label %lpad34.body58 59lpad34.loopexit.split-lp:60  %lpad.loopexit.split-lp57 = landingpad { ptr, i32 }61  cleanup62  br label %lpad34.body63 64lpad34.body:65  %0 = phi ptr [ %.lcssa101, %lpad34.loopexit ], [ null, %lpad34.loopexit.split-lp ]66  %call3399 = phi ptr [ %call33.lcssa96, %lpad34.loopexit ], [ null, %lpad34.loopexit.split-lp ]67  br label %ehcleanup4768 69ehcleanup47:70  resume { ptr, i32 } zeroinitializer71}72 73define i32 @test2(i64 %idx.ext.i48.pre-phi) {74; CHECK-LABEL: define i32 @test2(75; CHECK-SAME: i64 [[IDX_EXT_I48_PRE_PHI:%.*]]) #[[ATTR0]] {76; CHECK-NEXT:  entry:77; CHECK-NEXT:    br label [[DO_ACTION:%.*]]78; CHECK:       do_action:79; CHECK-NEXT:    switch i32 0, label [[SW_DEFAULT:%.*]] [80; CHECK-NEXT:      i32 1, label [[CLEANUP185:%.*]]81; CHECK-NEXT:      i32 2, label [[CLEANUP185]]82; CHECK-NEXT:      i32 0, label [[CLEANUP185]]83; CHECK-NEXT:      i32 4, label [[CLEANUP185]]84; CHECK-NEXT:      i32 5, label [[CLEANUP185]]85; CHECK-NEXT:      i32 6, label [[CLEANUP185]]86; CHECK-NEXT:      i32 7, label [[CLEANUP185]]87; CHECK-NEXT:      i32 8, label [[CLEANUP185]]88; CHECK-NEXT:      i32 9, label [[CLEANUP185]]89; CHECK-NEXT:      i32 10, label [[CLEANUP185]]90; CHECK-NEXT:      i32 11, label [[CLEANUP185]]91; CHECK-NEXT:      i32 12, label [[CLEANUP185]]92; CHECK-NEXT:      i32 13, label [[CLEANUP185]]93; CHECK-NEXT:      i32 14, label [[CLEANUP185]]94; CHECK-NEXT:      i32 15, label [[CLEANUP185]]95; CHECK-NEXT:      i32 16, label [[CLEANUP185]]96; CHECK-NEXT:      i32 17, label [[CLEANUP185]]97; CHECK-NEXT:      i32 18, label [[CLEANUP185]]98; CHECK-NEXT:      i32 19, label [[CLEANUP185]]99; CHECK-NEXT:      i32 20, label [[CLEANUP185]]100; CHECK-NEXT:      i32 21, label [[CLEANUP185]]101; CHECK-NEXT:      i32 22, label [[CLEANUP185]]102; CHECK-NEXT:      i32 23, label [[CLEANUP185]]103; CHECK-NEXT:      i32 24, label [[CLEANUP185]]104; CHECK-NEXT:      i32 25, label [[CLEANUP185]]105; CHECK-NEXT:      i32 26, label [[CLEANUP185]]106; CHECK-NEXT:      i32 27, label [[CLEANUP185]]107; CHECK-NEXT:      i32 28, label [[CLEANUP185]]108; CHECK-NEXT:      i32 29, label [[CLEANUP185]]109; CHECK-NEXT:      i32 30, label [[CLEANUP185]]110; CHECK-NEXT:      i32 31, label [[CLEANUP185]]111; CHECK-NEXT:      i32 32, label [[CLEANUP185]]112; CHECK-NEXT:      i32 33, label [[CLEANUP185]]113; CHECK-NEXT:      i32 34, label [[CLEANUP185]]114; CHECK-NEXT:      i32 35, label [[CLEANUP185]]115; CHECK-NEXT:      i32 36, label [[CLEANUP185]]116; CHECK-NEXT:      i32 37, label [[CLEANUP185]]117; CHECK-NEXT:      i32 38, label [[CLEANUP185]]118; CHECK-NEXT:      i32 39, label [[CLEANUP185]]119; CHECK-NEXT:      i32 40, label [[CLEANUP185]]120; CHECK-NEXT:      i32 41, label [[CLEANUP185]]121; CHECK-NEXT:      i32 42, label [[CLEANUP185]]122; CHECK-NEXT:      i32 43, label [[CLEANUP185]]123; CHECK-NEXT:      i32 44, label [[CLEANUP185]]124; CHECK-NEXT:      i32 45, label [[CLEANUP185]]125; CHECK-NEXT:      i32 46, label [[CLEANUP185]]126; CHECK-NEXT:      i32 47, label [[CLEANUP185]]127; CHECK-NEXT:      i32 48, label [[CLEANUP185]]128; CHECK-NEXT:      i32 49, label [[CLEANUP185]]129; CHECK-NEXT:      i32 50, label [[CLEANUP185]]130; CHECK-NEXT:      i32 51, label [[CLEANUP185]]131; CHECK-NEXT:      i32 52, label [[CLEANUP185]]132; CHECK-NEXT:      i32 53, label [[CLEANUP185]]133; CHECK-NEXT:      i32 54, label [[CLEANUP185]]134; CHECK-NEXT:      i32 55, label [[CLEANUP185]]135; CHECK-NEXT:      i32 56, label [[CLEANUP185]]136; CHECK-NEXT:      i32 57, label [[DO_ACTION]]137; CHECK-NEXT:      i32 58, label [[CLEANUP185]]138; CHECK-NEXT:      i32 59, label [[CLEANUP185]]139; CHECK-NEXT:      i32 60, label [[DO_ACTION]]140; CHECK-NEXT:      i32 61, label [[DO_ACTION]]141; CHECK-NEXT:      i32 62, label [[CLEANUP185]]142; CHECK-NEXT:      i32 70, label [[SW_BB175:%.*]]143; CHECK-NEXT:      i32 64, label [[CLEANUP185]]144; CHECK-NEXT:      i32 65, label [[DO_ACTION]]145; CHECK-NEXT:      i32 66, label [[DO_ACTION]]146; CHECK-NEXT:      i32 67, label [[CLEANUP185]]147; CHECK-NEXT:      i32 72, label [[CLEANUP185]]148; CHECK-NEXT:      i32 69, label [[DO_ACTION]]149; CHECK-NEXT:      i32 71, label [[CLEANUP185]]150; CHECK-NEXT:    ]151; CHECK:       yy_get_previous_state.exit.loopexit:152; CHECK-NEXT:    br label [[YY_FIND_ACTION_BACKEDGE:%.*]]153; CHECK:       yy_find_action.backedge:154; CHECK-NEXT:    [[YY_BP_1_BE:%.*]] = phi ptr [ [[ADD_PTR_I49:%.*]], [[SW_BB175]] ], [ null, [[YY_GET_PREVIOUS_STATE_EXIT_LOOPEXIT:%.*]] ]155; CHECK-NEXT:    [[YY_CP_2_BE:%.*]] = phi ptr [ [[ARRAYIDX178:%.*]], [[SW_BB175]] ], [ null, [[YY_GET_PREVIOUS_STATE_EXIT_LOOPEXIT]] ]156; CHECK-NEXT:    br label [[DO_ACTION]]157; CHECK:       sw.bb175:158; CHECK-NEXT:    [[ARRAYIDX178]] = getelementptr i8, ptr null, i64 0159; CHECK-NEXT:    [[ADD_PTR_I49]] = getelementptr i8, ptr null, i64 [[IDX_EXT_I48_PRE_PHI]]160; CHECK-NEXT:    [[CMP5_I50:%.*]] = icmp ult ptr [[ADD_PTR_I49]], [[ARRAYIDX178]]161; CHECK-NEXT:    br label [[YY_FIND_ACTION_BACKEDGE]]162; CHECK:       sw.default:163; CHECK-NEXT:    unreachable164; CHECK:       cleanup185:165; CHECK-NEXT:    ret i32 0166;167entry:168  br label %do_action169 170do_action:171  switch i32 0, label %sw.default [172  i32 1, label %cleanup185173  i32 2, label %cleanup185174  i32 0, label %cleanup185175  i32 4, label %cleanup185176  i32 5, label %cleanup185177  i32 6, label %cleanup185178  i32 7, label %cleanup185179  i32 8, label %cleanup185180  i32 9, label %cleanup185181  i32 10, label %cleanup185182  i32 11, label %cleanup185183  i32 12, label %cleanup185184  i32 13, label %cleanup185185  i32 14, label %cleanup185186  i32 15, label %cleanup185187  i32 16, label %cleanup185188  i32 17, label %cleanup185189  i32 18, label %cleanup185190  i32 19, label %cleanup185191  i32 20, label %cleanup185192  i32 21, label %cleanup185193  i32 22, label %cleanup185194  i32 23, label %cleanup185195  i32 24, label %cleanup185196  i32 25, label %cleanup185197  i32 26, label %cleanup185198  i32 27, label %cleanup185199  i32 28, label %cleanup185200  i32 29, label %cleanup185201  i32 30, label %cleanup185202  i32 31, label %cleanup185203  i32 32, label %cleanup185204  i32 33, label %cleanup185205  i32 34, label %cleanup185206  i32 35, label %cleanup185207  i32 36, label %cleanup185208  i32 37, label %cleanup185209  i32 38, label %cleanup185210  i32 39, label %cleanup185211  i32 40, label %cleanup185212  i32 41, label %cleanup185213  i32 42, label %cleanup185214  i32 43, label %cleanup185215  i32 44, label %cleanup185216  i32 45, label %cleanup185217  i32 46, label %cleanup185218  i32 47, label %cleanup185219  i32 48, label %cleanup185220  i32 49, label %cleanup185221  i32 50, label %cleanup185222  i32 51, label %cleanup185223  i32 52, label %cleanup185224  i32 53, label %cleanup185225  i32 54, label %cleanup185226  i32 55, label %cleanup185227  i32 56, label %cleanup185228  i32 57, label %do_action229  i32 58, label %cleanup185230  i32 59, label %cleanup185231  i32 60, label %do_action232  i32 61, label %do_action233  i32 62, label %cleanup185234  i32 70, label %sw.bb175235  i32 64, label %cleanup185236  i32 65, label %do_action237  i32 66, label %do_action238  i32 67, label %cleanup185239  i32 72, label %cleanup185240  i32 69, label %do_action241  i32 71, label %cleanup185242  ]243 244yy_get_previous_state.exit.loopexit:245  br label %yy_find_action.backedge246 247yy_find_action.backedge:248  %yy_bp.1.be = phi ptr [ %add.ptr.i49, %sw.bb175 ], [ null, %yy_get_previous_state.exit.loopexit ]249  %yy_cp.2.be = phi ptr [ %arrayidx178, %sw.bb175 ], [ null, %yy_get_previous_state.exit.loopexit ]250  br label %do_action251 252sw.bb175:253  %arrayidx178 = getelementptr i8, ptr null, i64 0254  %add.ptr.i49 = getelementptr i8, ptr null, i64 %idx.ext.i48.pre-phi255  %cmp5.i50 = icmp ult ptr %add.ptr.i49, %arrayidx178256  br label %yy_find_action.backedge257 258sw.default:259  unreachable260 261cleanup185:262  ret i32 0263}264