brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.5 KiB · 190d9af Raw
282 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=ve -exception-model sjlj | FileCheck %s3; RUN: llc < %s -mtriple=ve -exception-model sjlj -relocation-model pic | \4; RUN:     FileCheck %s -check-prefix=PIC5 6; Function Attrs: noinline nounwind optnone7define void @test_callsite() personality ptr @__gxx_personality_sj0 {8; CHECK-LABEL: test_callsite:9; CHECK:       # %bb.0:10; CHECK-NEXT:    st %s9, (, %s11)11; CHECK-NEXT:    st %s10, 8(, %s11)12; CHECK-NEXT:    or %s9, 0, %s1113; CHECK-NEXT:    lea %s11, -432(, %s11)14; CHECK-NEXT:    brge.l %s11, %s8, .LBB0_715; CHECK-NEXT:  # %bb.6:16; CHECK-NEXT:    ld %s61, 24(, %s14)17; CHECK-NEXT:    or %s62, 0, %s018; CHECK-NEXT:    lea %s63, 31519; CHECK-NEXT:    shm.l %s63, (%s61)20; CHECK-NEXT:    shm.l %s8, 8(%s61)21; CHECK-NEXT:    shm.l %s11, 16(%s61)22; CHECK-NEXT:    monc23; CHECK-NEXT:    or %s0, 0, %s6224; CHECK-NEXT:  .LBB0_7:25; CHECK-NEXT:    st %s18, 48(, %s9) # 8-byte Folded Spill26; CHECK-NEXT:    st %s19, 56(, %s9) # 8-byte Folded Spill27; CHECK-NEXT:    st %s20, 64(, %s9) # 8-byte Folded Spill28; CHECK-NEXT:    st %s21, 72(, %s9) # 8-byte Folded Spill29; CHECK-NEXT:    st %s22, 80(, %s9) # 8-byte Folded Spill30; CHECK-NEXT:    st %s23, 88(, %s9) # 8-byte Folded Spill31; CHECK-NEXT:    st %s24, 96(, %s9) # 8-byte Folded Spill32; CHECK-NEXT:    st %s25, 104(, %s9) # 8-byte Folded Spill33; CHECK-NEXT:    st %s26, 112(, %s9) # 8-byte Folded Spill34; CHECK-NEXT:    st %s27, 120(, %s9) # 8-byte Folded Spill35; CHECK-NEXT:    st %s28, 128(, %s9) # 8-byte Folded Spill36; CHECK-NEXT:    st %s29, 136(, %s9) # 8-byte Folded Spill37; CHECK-NEXT:    st %s30, 144(, %s9) # 8-byte Folded Spill38; CHECK-NEXT:    st %s31, 152(, %s9) # 8-byte Folded Spill39; CHECK-NEXT:    st %s32, 160(, %s9) # 8-byte Folded Spill40; CHECK-NEXT:    st %s33, 168(, %s9) # 8-byte Folded Spill41; CHECK-NEXT:    lea %s0, __gxx_personality_sj0@lo42; CHECK-NEXT:    and %s0, %s0, (32)043; CHECK-NEXT:    lea.sl %s0, __gxx_personality_sj0@hi(, %s0)44; CHECK-NEXT:    st %s0, -56(, %s9)45; CHECK-NEXT:    lea %s0, GCC_except_table0@lo46; CHECK-NEXT:    and %s0, %s0, (32)047; CHECK-NEXT:    lea.sl %s0, GCC_except_table0@hi(, %s0)48; CHECK-NEXT:    st %s0, -48(, %s9)49; CHECK-NEXT:    st %s9, -40(, %s9)50; CHECK-NEXT:    st %s11, -24(, %s9)51; CHECK-NEXT:    lea %s0, .LBB0_3@lo52; CHECK-NEXT:    and %s0, %s0, (32)053; CHECK-NEXT:    lea.sl %s0, .LBB0_3@hi(, %s0)54; CHECK-NEXT:    st %s0, -32(, %s9)55; CHECK-NEXT:    lea %s0, _Unwind_SjLj_Register@lo56; CHECK-NEXT:    and %s0, %s0, (32)057; CHECK-NEXT:    lea.sl %s12, _Unwind_SjLj_Register@hi(, %s0)58; CHECK-NEXT:    lea %s0, -104(, %s9)59; CHECK-NEXT:    bsic %s10, (, %s12)60; CHECK-NEXT:    or %s0, 1, (0)161; CHECK-NEXT:    st %s0, -96(, %s9)62; CHECK-NEXT:  .Ltmp0:63; CHECK-NEXT:    lea %s0, f@lo64; CHECK-NEXT:    and %s0, %s0, (32)065; CHECK-NEXT:    lea.sl %s12, f@hi(, %s0)66; CHECK-NEXT:    bsic %s10, (, %s12)67; CHECK-NEXT:  .Ltmp1:68; CHECK-NEXT:  .LBB0_2: # %try.cont69; CHECK-NEXT:    or %s0, -1, (0)170; CHECK-NEXT:    st %s0, -96(, %s9)71; CHECK-NEXT:    lea %s0, _Unwind_SjLj_Unregister@lo72; CHECK-NEXT:    and %s0, %s0, (32)073; CHECK-NEXT:    lea.sl %s18, _Unwind_SjLj_Unregister@hi(, %s0)74; CHECK-NEXT:    lea %s0, -192(, %s9)75; CHECK-NEXT:    or %s12, 0, %s1876; CHECK-NEXT:    bsic %s10, (, %s12)77; CHECK-NEXT:    lea %s0, -104(, %s9)78; CHECK-NEXT:    or %s12, 0, %s1879; CHECK-NEXT:    bsic %s10, (, %s12)80; CHECK-NEXT:    ld %s33, 168(, %s9) # 8-byte Folded Reload81; CHECK-NEXT:    ld %s32, 160(, %s9) # 8-byte Folded Reload82; CHECK-NEXT:    ld %s31, 152(, %s9) # 8-byte Folded Reload83; CHECK-NEXT:    ld %s30, 144(, %s9) # 8-byte Folded Reload84; CHECK-NEXT:    ld %s29, 136(, %s9) # 8-byte Folded Reload85; CHECK-NEXT:    ld %s28, 128(, %s9) # 8-byte Folded Reload86; CHECK-NEXT:    ld %s27, 120(, %s9) # 8-byte Folded Reload87; CHECK-NEXT:    ld %s26, 112(, %s9) # 8-byte Folded Reload88; CHECK-NEXT:    ld %s25, 104(, %s9) # 8-byte Folded Reload89; CHECK-NEXT:    ld %s24, 96(, %s9) # 8-byte Folded Reload90; CHECK-NEXT:    ld %s23, 88(, %s9) # 8-byte Folded Reload91; CHECK-NEXT:    ld %s22, 80(, %s9) # 8-byte Folded Reload92; CHECK-NEXT:    ld %s21, 72(, %s9) # 8-byte Folded Reload93; CHECK-NEXT:    ld %s20, 64(, %s9) # 8-byte Folded Reload94; CHECK-NEXT:    ld %s19, 56(, %s9) # 8-byte Folded Reload95; CHECK-NEXT:    ld %s18, 48(, %s9) # 8-byte Folded Reload96; CHECK-NEXT:    or %s11, 0, %s997; CHECK-NEXT:    ld %s10, 8(, %s11)98; CHECK-NEXT:    ld %s9, (, %s11)99; CHECK-NEXT:    b.l.t (, %s10)100; CHECK-NEXT:  .LBB0_3:101; CHECK-NEXT:    ldl.zx %s0, -96(, %s9)102; CHECK-NEXT:    brgt.l 1, %s0, .LBB0_4103; CHECK-NEXT:  # %bb.5:104; CHECK-NEXT:    lea %s0, abort@lo105; CHECK-NEXT:    and %s0, %s0, (32)0106; CHECK-NEXT:    lea.sl %s0, abort@hi(, %s0)107; CHECK-NEXT:    bsic %s10, (, %s0)108; CHECK-NEXT:  .LBB0_4:109; CHECK-NEXT:    lea %s1, .LJTI0_0@lo110; CHECK-NEXT:    and %s1, %s1, (32)0111; CHECK-NEXT:    lea.sl %s1, .LJTI0_0@hi(, %s1)112; CHECK-NEXT:    sll %s0, %s0, 3113; CHECK-NEXT:    ld %s0, (%s0, %s1)114; CHECK-NEXT:    b.l.t (, %s0)115; CHECK-NEXT:  .LBB0_1: # %lpad116; CHECK-NEXT:  .Ltmp2:117; CHECK-NEXT:    ld %s0, -88(, %s9)118; CHECK-NEXT:    ld %s0, -80(, %s9)119; CHECK-NEXT:    br.l.t .LBB0_2120;121; PIC-LABEL: test_callsite:122; PIC:       # %bb.0:123; PIC-NEXT:    st %s9, (, %s11)124; PIC-NEXT:    st %s10, 8(, %s11)125; PIC-NEXT:    st %s15, 24(, %s11)126; PIC-NEXT:    st %s16, 32(, %s11)127; PIC-NEXT:    or %s9, 0, %s11128; PIC-NEXT:    lea %s11, -432(, %s11)129; PIC-NEXT:    brge.l %s11, %s8, .LBB0_7130; PIC-NEXT:  # %bb.6:131; PIC-NEXT:    ld %s61, 24(, %s14)132; PIC-NEXT:    or %s62, 0, %s0133; PIC-NEXT:    lea %s63, 315134; PIC-NEXT:    shm.l %s63, (%s61)135; PIC-NEXT:    shm.l %s8, 8(%s61)136; PIC-NEXT:    shm.l %s11, 16(%s61)137; PIC-NEXT:    monc138; PIC-NEXT:    or %s0, 0, %s62139; PIC-NEXT:  .LBB0_7:140; PIC-NEXT:    st %s18, 48(, %s9) # 8-byte Folded Spill141; PIC-NEXT:    st %s19, 56(, %s9) # 8-byte Folded Spill142; PIC-NEXT:    st %s20, 64(, %s9) # 8-byte Folded Spill143; PIC-NEXT:    st %s21, 72(, %s9) # 8-byte Folded Spill144; PIC-NEXT:    st %s22, 80(, %s9) # 8-byte Folded Spill145; PIC-NEXT:    st %s23, 88(, %s9) # 8-byte Folded Spill146; PIC-NEXT:    st %s24, 96(, %s9) # 8-byte Folded Spill147; PIC-NEXT:    st %s25, 104(, %s9) # 8-byte Folded Spill148; PIC-NEXT:    st %s26, 112(, %s9) # 8-byte Folded Spill149; PIC-NEXT:    st %s27, 120(, %s9) # 8-byte Folded Spill150; PIC-NEXT:    st %s28, 128(, %s9) # 8-byte Folded Spill151; PIC-NEXT:    st %s29, 136(, %s9) # 8-byte Folded Spill152; PIC-NEXT:    st %s30, 144(, %s9) # 8-byte Folded Spill153; PIC-NEXT:    st %s31, 152(, %s9) # 8-byte Folded Spill154; PIC-NEXT:    st %s32, 160(, %s9) # 8-byte Folded Spill155; PIC-NEXT:    st %s33, 168(, %s9) # 8-byte Folded Spill156; PIC-NEXT:    lea %s15, _GLOBAL_OFFSET_TABLE_@pc_lo(-24)157; PIC-NEXT:    and %s15, %s15, (32)0158; PIC-NEXT:    sic %s16159; PIC-NEXT:    lea.sl %s15, _GLOBAL_OFFSET_TABLE_@pc_hi(%s16, %s15)160; PIC-NEXT:    lea %s0, __gxx_personality_sj0@got_lo161; PIC-NEXT:    and %s0, %s0, (32)0162; PIC-NEXT:    lea.sl %s0, __gxx_personality_sj0@got_hi(, %s0)163; PIC-NEXT:    ld %s0, (%s0, %s15)164; PIC-NEXT:    st %s0, -56(, %s9)165; PIC-NEXT:    lea %s0, GCC_except_table0@gotoff_lo166; PIC-NEXT:    and %s0, %s0, (32)0167; PIC-NEXT:    lea.sl %s0, GCC_except_table0@gotoff_hi(%s0, %s15)168; PIC-NEXT:    st %s0, -48(, %s9)169; PIC-NEXT:    st %s9, -40(, %s9)170; PIC-NEXT:    st %s11, -24(, %s9)171; PIC-NEXT:    lea %s0, .LBB0_3@gotoff_lo172; PIC-NEXT:    and %s0, %s0, (32)0173; PIC-NEXT:    lea.sl %s0, .LBB0_3@gotoff_hi(%s0, %s15)174; PIC-NEXT:    st %s0, -32(, %s9)175; PIC-NEXT:    lea %s12, _Unwind_SjLj_Register@plt_lo(-24)176; PIC-NEXT:    and %s12, %s12, (32)0177; PIC-NEXT:    sic %s16178; PIC-NEXT:    lea.sl %s12, _Unwind_SjLj_Register@plt_hi(%s16, %s12)179; PIC-NEXT:    lea %s0, -104(, %s9)180; PIC-NEXT:    bsic %s10, (, %s12)181; PIC-NEXT:    or %s0, 1, (0)1182; PIC-NEXT:    st %s0, -96(, %s9)183; PIC-NEXT:  .Ltmp0:184; PIC-NEXT:    lea %s12, f@plt_lo(-24)185; PIC-NEXT:    and %s12, %s12, (32)0186; PIC-NEXT:    sic %s16187; PIC-NEXT:    lea.sl %s12, f@plt_hi(%s16, %s12)188; PIC-NEXT:    bsic %s10, (, %s12)189; PIC-NEXT:  .Ltmp1:190; PIC-NEXT:  .LBB0_2: # %try.cont191; PIC-NEXT:    or %s0, -1, (0)1192; PIC-NEXT:    st %s0, -96(, %s9)193; PIC-NEXT:    lea %s18, _Unwind_SjLj_Unregister@plt_lo(-24)194; PIC-NEXT:    and %s18, %s18, (32)0195; PIC-NEXT:    sic %s16196; PIC-NEXT:    lea.sl %s18, _Unwind_SjLj_Unregister@plt_hi(%s16, %s18)197; PIC-NEXT:    lea %s0, -192(, %s9)198; PIC-NEXT:    or %s12, 0, %s18199; PIC-NEXT:    bsic %s10, (, %s12)200; PIC-NEXT:    lea %s0, -104(, %s9)201; PIC-NEXT:    or %s12, 0, %s18202; PIC-NEXT:    bsic %s10, (, %s12)203; PIC-NEXT:    ld %s33, 168(, %s9) # 8-byte Folded Reload204; PIC-NEXT:    ld %s32, 160(, %s9) # 8-byte Folded Reload205; PIC-NEXT:    ld %s31, 152(, %s9) # 8-byte Folded Reload206; PIC-NEXT:    ld %s30, 144(, %s9) # 8-byte Folded Reload207; PIC-NEXT:    ld %s29, 136(, %s9) # 8-byte Folded Reload208; PIC-NEXT:    ld %s28, 128(, %s9) # 8-byte Folded Reload209; PIC-NEXT:    ld %s27, 120(, %s9) # 8-byte Folded Reload210; PIC-NEXT:    ld %s26, 112(, %s9) # 8-byte Folded Reload211; PIC-NEXT:    ld %s25, 104(, %s9) # 8-byte Folded Reload212; PIC-NEXT:    ld %s24, 96(, %s9) # 8-byte Folded Reload213; PIC-NEXT:    ld %s23, 88(, %s9) # 8-byte Folded Reload214; PIC-NEXT:    ld %s22, 80(, %s9) # 8-byte Folded Reload215; PIC-NEXT:    ld %s21, 72(, %s9) # 8-byte Folded Reload216; PIC-NEXT:    ld %s20, 64(, %s9) # 8-byte Folded Reload217; PIC-NEXT:    ld %s19, 56(, %s9) # 8-byte Folded Reload218; PIC-NEXT:    ld %s18, 48(, %s9) # 8-byte Folded Reload219; PIC-NEXT:    or %s11, 0, %s9220; PIC-NEXT:    ld %s16, 32(, %s11)221; PIC-NEXT:    ld %s15, 24(, %s11)222; PIC-NEXT:    ld %s10, 8(, %s11)223; PIC-NEXT:    ld %s9, (, %s11)224; PIC-NEXT:    b.l.t (, %s10)225; PIC-NEXT:  .LBB0_3:226; PIC-NEXT:    ldl.zx %s0, -96(, %s9)227; PIC-NEXT:    lea %s15, _GLOBAL_OFFSET_TABLE_@pc_lo(-24)228; PIC-NEXT:    and %s15, %s15, (32)0229; PIC-NEXT:    sic %s16230; PIC-NEXT:    lea.sl %s15, _GLOBAL_OFFSET_TABLE_@pc_hi(%s16, %s15)231; PIC-NEXT:    brgt.l 1, %s0, .LBB0_4232; PIC-NEXT:  # %bb.5:233; PIC-NEXT:    lea %s0, abort@plt_lo(-24)234; PIC-NEXT:    and %s0, %s0, (32)0235; PIC-NEXT:    sic %s16236; PIC-NEXT:    lea.sl %s0, abort@plt_hi(%s16, %s0)237; PIC-NEXT:    bsic %s10, (, %s0)238; PIC-NEXT:  .LBB0_4:239; PIC-NEXT:    lea %s1, .LJTI0_0@gotoff_lo240; PIC-NEXT:    and %s1, %s1, (32)0241; PIC-NEXT:    lea.sl %s1, .LJTI0_0@gotoff_hi(%s1, %s15)242; PIC-NEXT:    sll %s0, %s0, 2243; PIC-NEXT:    ldl.zx %s0, (%s0, %s1)244; PIC-NEXT:    lea %s1, test_callsite@gotoff_lo245; PIC-NEXT:    and %s1, %s1, (32)0246; PIC-NEXT:    lea.sl %s1, test_callsite@gotoff_hi(%s1, %s15)247; PIC-NEXT:    adds.l %s0, %s0, %s1248; PIC-NEXT:    b.l.t (, %s0)249; PIC-NEXT:  .LBB0_1: # %lpad250; PIC-NEXT:  .Ltmp2:251; PIC-NEXT:    ld %s0, -88(, %s9)252; PIC-NEXT:    ld %s0, -80(, %s9)253; PIC-NEXT:    br.l.t .LBB0_2254  %fn_context = alloca { ptr, i32, [4 x i32], ptr, ptr, [5 x ptr] }, align 4255  call void @llvm.eh.sjlj.callsite(i32 0)256  invoke void @f()257          to label %try.cont unwind label %lpad258 259lpad:                                             ; preds = %entry260  %1 = landingpad { ptr, i32 }261          cleanup262;;  %__data = getelementptr { ptr, i32, [4 x i32], ptr, ptr, [5 x ptr] }, ptr %fn_context, i32 0, i32 2263;;  %exn_val = load volatile i32, ptr %__data, align 4264;;  %2 = inttoptr i32 %exn_val to ptr265;;  %exn_selector_gep = getelementptr [4 x i32], ptr %__data, i32 0, i32 1266;;  %exn_selector_val = load volatile i32, ptr %exn_selector_gep, align 4267  br label %try.cont268 269try.cont:                                         ; preds = %lpad, %entry270  call void @_Unwind_SjLj_Unregister(ptr %fn_context)271  ret void272}273 274declare void @f()275 276declare i32 @__gxx_personality_sj0(...)277 278declare void @_Unwind_SjLj_Unregister(ptr)279 280; Function Attrs: nounwind readnone281declare void @llvm.eh.sjlj.callsite(i32)282