brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.1 KiB · 73004e8 Raw
302 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr9 -mattr=+altivec -verify-machineinstrs --vec-extabi \3; RUN:   -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \4; RUN:   -mtriple=powerpc-unknown-aix < %s  | FileCheck %s --check-prefix 32BIT5 6; RUN: llc -mcpu=pwr9 -mattr=+altivec -verify-machineinstrs --vec-extabi \7; RUN:   -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \8; RUN:   -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix 64BIT9 10@_ZTIi = external constant ptr11 12; Function Attrs: uwtable mustprogress13define dso_local signext i32 @_Z5test2iPPKc(i32 signext %argc, ptr nocapture readnone %argv) local_unnamed_addr #0 personality ptr @__gxx_personality_v0{14; 32BIT-LABEL: _Z5test2iPPKc:15; 32BIT:       # %bb.0: # %entry16; 32BIT-NEXT:    mflr r017; 32BIT-NEXT:    stwu r1, -464(r1)18; 32BIT-NEXT:    stw r0, 472(r1)19; 32BIT-NEXT:    stw r30, 320(r1) # 4-byte Folded Spill20; 32BIT-NEXT:    li r30, 021; 32BIT-NEXT:    stxv v20, 64(r1) # 16-byte Folded Spill22; 32BIT-NEXT:    stxv v21, 80(r1) # 16-byte Folded Spill23; 32BIT-NEXT:    stw r31, 324(r1) # 4-byte Folded Spill24; 32BIT-NEXT:    mr r31, r325; 32BIT-NEXT:    stw r14, 256(r1) # 4-byte Folded Spill26; 32BIT-NEXT:    stxv v22, 96(r1) # 16-byte Folded Spill27; 32BIT-NEXT:    stw r15, 260(r1) # 4-byte Folded Spill28; 32BIT-NEXT:    stxv v23, 112(r1) # 16-byte Folded Spill29; 32BIT-NEXT:    stw r16, 264(r1) # 4-byte Folded Spill30; 32BIT-NEXT:    stxv v24, 128(r1) # 16-byte Folded Spill31; 32BIT-NEXT:    stw r17, 268(r1) # 4-byte Folded Spill32; 32BIT-NEXT:    stw r18, 272(r1) # 4-byte Folded Spill33; 32BIT-NEXT:    stxv v25, 144(r1) # 16-byte Folded Spill34; 32BIT-NEXT:    stw r19, 276(r1) # 4-byte Folded Spill35; 32BIT-NEXT:    stxv v26, 160(r1) # 16-byte Folded Spill36; 32BIT-NEXT:    stw r20, 280(r1) # 4-byte Folded Spill37; 32BIT-NEXT:    stxv v27, 176(r1) # 16-byte Folded Spill38; 32BIT-NEXT:    stw r21, 284(r1) # 4-byte Folded Spill39; 32BIT-NEXT:    stw r22, 288(r1) # 4-byte Folded Spill40; 32BIT-NEXT:    stxv v28, 192(r1) # 16-byte Folded Spill41; 32BIT-NEXT:    stw r23, 292(r1) # 4-byte Folded Spill42; 32BIT-NEXT:    stxv v29, 208(r1) # 16-byte Folded Spill43; 32BIT-NEXT:    stw r24, 296(r1) # 4-byte Folded Spill44; 32BIT-NEXT:    stxv v30, 224(r1) # 16-byte Folded Spill45; 32BIT-NEXT:    stw r25, 300(r1) # 4-byte Folded Spill46; 32BIT-NEXT:    stw r26, 304(r1) # 4-byte Folded Spill47; 32BIT-NEXT:    stxv v31, 240(r1) # 16-byte Folded Spill48; 32BIT-NEXT:    stw r27, 308(r1) # 4-byte Folded Spill49; 32BIT-NEXT:    stw r28, 312(r1) # 4-byte Folded Spill50; 32BIT-NEXT:    stw r29, 316(r1) # 4-byte Folded Spill51; 32BIT-NEXT:    stfd f15, 328(r1) # 8-byte Folded Spill52; 32BIT-NEXT:    stfd f16, 336(r1) # 8-byte Folded Spill53; 32BIT-NEXT:    stfd f17, 344(r1) # 8-byte Folded Spill54; 32BIT-NEXT:    stfd f18, 352(r1) # 8-byte Folded Spill55; 32BIT-NEXT:    stfd f19, 360(r1) # 8-byte Folded Spill56; 32BIT-NEXT:    stfd f20, 368(r1) # 8-byte Folded Spill57; 32BIT-NEXT:    stfd f21, 376(r1) # 8-byte Folded Spill58; 32BIT-NEXT:    stfd f22, 384(r1) # 8-byte Folded Spill59; 32BIT-NEXT:    stfd f23, 392(r1) # 8-byte Folded Spill60; 32BIT-NEXT:    stfd f24, 400(r1) # 8-byte Folded Spill61; 32BIT-NEXT:    stfd f25, 408(r1) # 8-byte Folded Spill62; 32BIT-NEXT:    stfd f26, 416(r1) # 8-byte Folded Spill63; 32BIT-NEXT:    stfd f27, 424(r1) # 8-byte Folded Spill64; 32BIT-NEXT:    stfd f28, 432(r1) # 8-byte Folded Spill65; 32BIT-NEXT:    stfd f29, 440(r1) # 8-byte Folded Spill66; 32BIT-NEXT:    stfd f30, 448(r1) # 8-byte Folded Spill67; 32BIT-NEXT:    stfd f31, 456(r1) # 8-byte Folded Spill68; 32BIT-NEXT:    #APP69; 32BIT-NEXT:    nop70; 32BIT-NEXT:    #NO_APP71; 32BIT-NEXT:  L..tmp0:72; 32BIT-NEXT:    bl ._Z4testi[PR]73; 32BIT-NEXT:    nop74; 32BIT-NEXT:  L..tmp1:75; 32BIT-NEXT:  L..BB0_1: # %return76; 32BIT-NEXT:    lxv v31, 240(r1) # 16-byte Folded Reload77; 32BIT-NEXT:    lxv v30, 224(r1) # 16-byte Folded Reload78; 32BIT-NEXT:    lxv v29, 208(r1) # 16-byte Folded Reload79; 32BIT-NEXT:    lxv v28, 192(r1) # 16-byte Folded Reload80; 32BIT-NEXT:    mr r3, r3081; 32BIT-NEXT:    lxv v27, 176(r1) # 16-byte Folded Reload82; 32BIT-NEXT:    lxv v26, 160(r1) # 16-byte Folded Reload83; 32BIT-NEXT:    lxv v25, 144(r1) # 16-byte Folded Reload84; 32BIT-NEXT:    lxv v24, 128(r1) # 16-byte Folded Reload85; 32BIT-NEXT:    lxv v23, 112(r1) # 16-byte Folded Reload86; 32BIT-NEXT:    lxv v22, 96(r1) # 16-byte Folded Reload87; 32BIT-NEXT:    lxv v21, 80(r1) # 16-byte Folded Reload88; 32BIT-NEXT:    lxv v20, 64(r1) # 16-byte Folded Reload89; 32BIT-NEXT:    lfd f31, 456(r1) # 8-byte Folded Reload90; 32BIT-NEXT:    lfd f30, 448(r1) # 8-byte Folded Reload91; 32BIT-NEXT:    lfd f29, 440(r1) # 8-byte Folded Reload92; 32BIT-NEXT:    lfd f28, 432(r1) # 8-byte Folded Reload93; 32BIT-NEXT:    lwz r31, 324(r1) # 4-byte Folded Reload94; 32BIT-NEXT:    lwz r30, 320(r1) # 4-byte Folded Reload95; 32BIT-NEXT:    lwz r29, 316(r1) # 4-byte Folded Reload96; 32BIT-NEXT:    lfd f27, 424(r1) # 8-byte Folded Reload97; 32BIT-NEXT:    lwz r28, 312(r1) # 4-byte Folded Reload98; 32BIT-NEXT:    lwz r27, 308(r1) # 4-byte Folded Reload99; 32BIT-NEXT:    lwz r26, 304(r1) # 4-byte Folded Reload100; 32BIT-NEXT:    lfd f26, 416(r1) # 8-byte Folded Reload101; 32BIT-NEXT:    lwz r25, 300(r1) # 4-byte Folded Reload102; 32BIT-NEXT:    lwz r24, 296(r1) # 4-byte Folded Reload103; 32BIT-NEXT:    lwz r23, 292(r1) # 4-byte Folded Reload104; 32BIT-NEXT:    lfd f25, 408(r1) # 8-byte Folded Reload105; 32BIT-NEXT:    lwz r22, 288(r1) # 4-byte Folded Reload106; 32BIT-NEXT:    lwz r21, 284(r1) # 4-byte Folded Reload107; 32BIT-NEXT:    lwz r20, 280(r1) # 4-byte Folded Reload108; 32BIT-NEXT:    lfd f24, 400(r1) # 8-byte Folded Reload109; 32BIT-NEXT:    lwz r19, 276(r1) # 4-byte Folded Reload110; 32BIT-NEXT:    lwz r18, 272(r1) # 4-byte Folded Reload111; 32BIT-NEXT:    lwz r17, 268(r1) # 4-byte Folded Reload112; 32BIT-NEXT:    lfd f23, 392(r1) # 8-byte Folded Reload113; 32BIT-NEXT:    lwz r16, 264(r1) # 4-byte Folded Reload114; 32BIT-NEXT:    lwz r15, 260(r1) # 4-byte Folded Reload115; 32BIT-NEXT:    lwz r14, 256(r1) # 4-byte Folded Reload116; 32BIT-NEXT:    lfd f22, 384(r1) # 8-byte Folded Reload117; 32BIT-NEXT:    lfd f21, 376(r1) # 8-byte Folded Reload118; 32BIT-NEXT:    lfd f20, 368(r1) # 8-byte Folded Reload119; 32BIT-NEXT:    lfd f19, 360(r1) # 8-byte Folded Reload120; 32BIT-NEXT:    lfd f18, 352(r1) # 8-byte Folded Reload121; 32BIT-NEXT:    lfd f17, 344(r1) # 8-byte Folded Reload122; 32BIT-NEXT:    lfd f16, 336(r1) # 8-byte Folded Reload123; 32BIT-NEXT:    lfd f15, 328(r1) # 8-byte Folded Reload124; 32BIT-NEXT:    addi r1, r1, 464125; 32BIT-NEXT:    lwz r0, 8(r1)126; 32BIT-NEXT:    mtlr r0127; 32BIT-NEXT:    blr128; 32BIT-NEXT:  L..BB0_2: # %lpad129; 32BIT-NEXT:  L..tmp2:130; 32BIT-NEXT:    bl .__cxa_begin_catch[PR]131; 32BIT-NEXT:    nop132; 32BIT-NEXT:    lwz r3, 0(r3)133; 32BIT-NEXT:    add r30, r3, r31134; 32BIT-NEXT:    bl .__cxa_end_catch[PR]135; 32BIT-NEXT:    nop136; 32BIT-NEXT:    b L..BB0_1137;138; 64BIT-LABEL: _Z5test2iPPKc:139; 64BIT:       # %bb.0: # %entry140; 64BIT-NEXT:    mflr r0141; 64BIT-NEXT:    stdu r1, -592(r1)142; 64BIT-NEXT:    std r0, 608(r1)143; 64BIT-NEXT:    std r30, 440(r1) # 8-byte Folded Spill144; 64BIT-NEXT:    li r30, 0145; 64BIT-NEXT:    stxv v20, 112(r1) # 16-byte Folded Spill146; 64BIT-NEXT:    stxv v21, 128(r1) # 16-byte Folded Spill147; 64BIT-NEXT:    std r31, 448(r1) # 8-byte Folded Spill148; 64BIT-NEXT:    mr r31, r3149; 64BIT-NEXT:    std r14, 312(r1) # 8-byte Folded Spill150; 64BIT-NEXT:    stxv v22, 144(r1) # 16-byte Folded Spill151; 64BIT-NEXT:    std r15, 320(r1) # 8-byte Folded Spill152; 64BIT-NEXT:    stxv v23, 160(r1) # 16-byte Folded Spill153; 64BIT-NEXT:    std r16, 328(r1) # 8-byte Folded Spill154; 64BIT-NEXT:    stxv v24, 176(r1) # 16-byte Folded Spill155; 64BIT-NEXT:    std r17, 336(r1) # 8-byte Folded Spill156; 64BIT-NEXT:    std r18, 344(r1) # 8-byte Folded Spill157; 64BIT-NEXT:    stxv v25, 192(r1) # 16-byte Folded Spill158; 64BIT-NEXT:    std r19, 352(r1) # 8-byte Folded Spill159; 64BIT-NEXT:    stxv v26, 208(r1) # 16-byte Folded Spill160; 64BIT-NEXT:    std r20, 360(r1) # 8-byte Folded Spill161; 64BIT-NEXT:    stxv v27, 224(r1) # 16-byte Folded Spill162; 64BIT-NEXT:    std r21, 368(r1) # 8-byte Folded Spill163; 64BIT-NEXT:    std r22, 376(r1) # 8-byte Folded Spill164; 64BIT-NEXT:    stxv v28, 240(r1) # 16-byte Folded Spill165; 64BIT-NEXT:    std r23, 384(r1) # 8-byte Folded Spill166; 64BIT-NEXT:    stxv v29, 256(r1) # 16-byte Folded Spill167; 64BIT-NEXT:    std r24, 392(r1) # 8-byte Folded Spill168; 64BIT-NEXT:    stxv v30, 272(r1) # 16-byte Folded Spill169; 64BIT-NEXT:    std r25, 400(r1) # 8-byte Folded Spill170; 64BIT-NEXT:    std r26, 408(r1) # 8-byte Folded Spill171; 64BIT-NEXT:    stxv v31, 288(r1) # 16-byte Folded Spill172; 64BIT-NEXT:    std r27, 416(r1) # 8-byte Folded Spill173; 64BIT-NEXT:    std r28, 424(r1) # 8-byte Folded Spill174; 64BIT-NEXT:    std r29, 432(r1) # 8-byte Folded Spill175; 64BIT-NEXT:    stfd f15, 456(r1) # 8-byte Folded Spill176; 64BIT-NEXT:    stfd f16, 464(r1) # 8-byte Folded Spill177; 64BIT-NEXT:    stfd f17, 472(r1) # 8-byte Folded Spill178; 64BIT-NEXT:    stfd f18, 480(r1) # 8-byte Folded Spill179; 64BIT-NEXT:    stfd f19, 488(r1) # 8-byte Folded Spill180; 64BIT-NEXT:    stfd f20, 496(r1) # 8-byte Folded Spill181; 64BIT-NEXT:    stfd f21, 504(r1) # 8-byte Folded Spill182; 64BIT-NEXT:    stfd f22, 512(r1) # 8-byte Folded Spill183; 64BIT-NEXT:    stfd f23, 520(r1) # 8-byte Folded Spill184; 64BIT-NEXT:    stfd f24, 528(r1) # 8-byte Folded Spill185; 64BIT-NEXT:    stfd f25, 536(r1) # 8-byte Folded Spill186; 64BIT-NEXT:    stfd f26, 544(r1) # 8-byte Folded Spill187; 64BIT-NEXT:    stfd f27, 552(r1) # 8-byte Folded Spill188; 64BIT-NEXT:    stfd f28, 560(r1) # 8-byte Folded Spill189; 64BIT-NEXT:    stfd f29, 568(r1) # 8-byte Folded Spill190; 64BIT-NEXT:    stfd f30, 576(r1) # 8-byte Folded Spill191; 64BIT-NEXT:    stfd f31, 584(r1) # 8-byte Folded Spill192; 64BIT-NEXT:    #APP193; 64BIT-NEXT:    nop194; 64BIT-NEXT:    #NO_APP195; 64BIT-NEXT:  L..tmp0:196; 64BIT-NEXT:    bl ._Z4testi[PR]197; 64BIT-NEXT:    nop198; 64BIT-NEXT:  L..tmp1:199; 64BIT-NEXT:  L..BB0_1: # %return200; 64BIT-NEXT:    lxv v31, 288(r1) # 16-byte Folded Reload201; 64BIT-NEXT:    lxv v30, 272(r1) # 16-byte Folded Reload202; 64BIT-NEXT:    lxv v29, 256(r1) # 16-byte Folded Reload203; 64BIT-NEXT:    lxv v28, 240(r1) # 16-byte Folded Reload204; 64BIT-NEXT:    extsw r3, r30205; 64BIT-NEXT:    lxv v27, 224(r1) # 16-byte Folded Reload206; 64BIT-NEXT:    lxv v26, 208(r1) # 16-byte Folded Reload207; 64BIT-NEXT:    lxv v25, 192(r1) # 16-byte Folded Reload208; 64BIT-NEXT:    lxv v24, 176(r1) # 16-byte Folded Reload209; 64BIT-NEXT:    lxv v23, 160(r1) # 16-byte Folded Reload210; 64BIT-NEXT:    lxv v22, 144(r1) # 16-byte Folded Reload211; 64BIT-NEXT:    lxv v21, 128(r1) # 16-byte Folded Reload212; 64BIT-NEXT:    lxv v20, 112(r1) # 16-byte Folded Reload213; 64BIT-NEXT:    lfd f31, 584(r1) # 8-byte Folded Reload214; 64BIT-NEXT:    lfd f30, 576(r1) # 8-byte Folded Reload215; 64BIT-NEXT:    lfd f29, 568(r1) # 8-byte Folded Reload216; 64BIT-NEXT:    lfd f28, 560(r1) # 8-byte Folded Reload217; 64BIT-NEXT:    ld r31, 448(r1) # 8-byte Folded Reload218; 64BIT-NEXT:    ld r30, 440(r1) # 8-byte Folded Reload219; 64BIT-NEXT:    ld r29, 432(r1) # 8-byte Folded Reload220; 64BIT-NEXT:    lfd f27, 552(r1) # 8-byte Folded Reload221; 64BIT-NEXT:    ld r28, 424(r1) # 8-byte Folded Reload222; 64BIT-NEXT:    ld r27, 416(r1) # 8-byte Folded Reload223; 64BIT-NEXT:    ld r26, 408(r1) # 8-byte Folded Reload224; 64BIT-NEXT:    lfd f26, 544(r1) # 8-byte Folded Reload225; 64BIT-NEXT:    ld r25, 400(r1) # 8-byte Folded Reload226; 64BIT-NEXT:    ld r24, 392(r1) # 8-byte Folded Reload227; 64BIT-NEXT:    ld r23, 384(r1) # 8-byte Folded Reload228; 64BIT-NEXT:    lfd f25, 536(r1) # 8-byte Folded Reload229; 64BIT-NEXT:    ld r22, 376(r1) # 8-byte Folded Reload230; 64BIT-NEXT:    ld r21, 368(r1) # 8-byte Folded Reload231; 64BIT-NEXT:    ld r20, 360(r1) # 8-byte Folded Reload232; 64BIT-NEXT:    lfd f24, 528(r1) # 8-byte Folded Reload233; 64BIT-NEXT:    ld r19, 352(r1) # 8-byte Folded Reload234; 64BIT-NEXT:    ld r18, 344(r1) # 8-byte Folded Reload235; 64BIT-NEXT:    ld r17, 336(r1) # 8-byte Folded Reload236; 64BIT-NEXT:    lfd f23, 520(r1) # 8-byte Folded Reload237; 64BIT-NEXT:    ld r16, 328(r1) # 8-byte Folded Reload238; 64BIT-NEXT:    ld r15, 320(r1) # 8-byte Folded Reload239; 64BIT-NEXT:    ld r14, 312(r1) # 8-byte Folded Reload240; 64BIT-NEXT:    lfd f22, 512(r1) # 8-byte Folded Reload241; 64BIT-NEXT:    lfd f21, 504(r1) # 8-byte Folded Reload242; 64BIT-NEXT:    lfd f20, 496(r1) # 8-byte Folded Reload243; 64BIT-NEXT:    lfd f19, 488(r1) # 8-byte Folded Reload244; 64BIT-NEXT:    lfd f18, 480(r1) # 8-byte Folded Reload245; 64BIT-NEXT:    lfd f17, 472(r1) # 8-byte Folded Reload246; 64BIT-NEXT:    lfd f16, 464(r1) # 8-byte Folded Reload247; 64BIT-NEXT:    lfd f15, 456(r1) # 8-byte Folded Reload248; 64BIT-NEXT:    addi r1, r1, 592249; 64BIT-NEXT:    ld r0, 16(r1)250; 64BIT-NEXT:    mtlr r0251; 64BIT-NEXT:    blr252; 64BIT-NEXT:  L..BB0_2: # %lpad253; 64BIT-NEXT:  L..tmp2:254; 64BIT-NEXT:    bl .__cxa_begin_catch[PR]255; 64BIT-NEXT:    nop256; 64BIT-NEXT:    lwz r3, 0(r3)257; 64BIT-NEXT:    add r30, r3, r31258; 64BIT-NEXT:    bl .__cxa_end_catch[PR]259; 64BIT-NEXT:    nop260; 64BIT-NEXT:    b L..BB0_1261entry:262  tail call void asm sideeffect "nop", "~{r14},~{f15},~{v20}"()263  %call = invoke signext i32 @_Z4testi(i32 signext %argc)264          to label %return unwind label %lpad265 266lpad:                                             ; preds = %entry267  %0 = landingpad { ptr, i32 }268          catch ptr @_ZTIi269  %1 = extractvalue { ptr, i32 } %0, 1270  %2 = tail call i32 @llvm.eh.typeid.for(ptr @_ZTIi) #3271  %matches = icmp eq i32 %1, %2272  br i1 %matches, label %catch, label %eh.resume273 274catch:                                            ; preds = %lpad275  %3 = extractvalue { ptr, i32 } %0, 0276  %4 = tail call ptr @__cxa_begin_catch(ptr %3) #3277  %5 = load i32, ptr %4, align 4278  %add = add nsw i32 %5, %argc279  tail call void @__cxa_end_catch()280  br label %return281 282return:                                           ; preds = %entry, %catch283  %retval.0 = phi i32 [ %add, %catch ], [ 0, %entry ]284  ret i32 %retval.0285 286eh.resume:                                        ; preds = %lpad287  resume { ptr, i32 } %0288}289 290declare signext i32 @_Z4testi(i32 signext) local_unnamed_addr291 292declare i32 @__gxx_personality_v0(...)293 294; Function Attrs: nounwind readnone295declare i32 @llvm.eh.typeid.for(ptr)296 297declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr298 299declare void @__cxa_end_catch() local_unnamed_addr300 301attributes #0 = { uwtable }302