brintos

brintos / llvm-project-archived public Read only

0
0
Text · 30.1 KiB · 4aedd1c Raw
973 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs --mtriple powerpc64le-unknown-linux-gnu \3; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P8LE4; RUN: llc -verify-machineinstrs --mtriple powerpc64le-unknown-linux-gnu \5; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P9LE6; RUN: llc -verify-machineinstrs --mtriple powerpc64le-unknown-linux-gnu \7; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P10LE8; RUN: llc -verify-machineinstrs --mtriple powerpc64-unknown-linux-gnu \9; RUN:   -mcpu=pwr8 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P8BE10; RUN: llc -verify-machineinstrs --mtriple powerpc64-unknown-linux-gnu \11; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P9BE12; RUN: llc -verify-machineinstrs --mtriple powerpc64-unknown-linux-gnu \13; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=P10BE14 15define signext i8 @caller_1(ptr nocapture readonly byval([1 x i8]) %data) #0 {16; P8LE-LABEL: caller_1:17; P8LE:       # %bb.0: # %entry18; P8LE-NEXT:    mflr r019; P8LE-NEXT:    stdu r1, -64(r1)20; P8LE-NEXT:    std r0, 80(r1)21; P8LE-NEXT:    stb r3, 48(r1)22; P8LE-NEXT:    lbz r3, 48(r1)23; P8LE-NEXT:    stb r3, 63(r1)24; P8LE-NEXT:    addi r3, r1, 6325; P8LE-NEXT:    bl callee26; P8LE-NEXT:    nop27; P8LE-NEXT:    li r3, 028; P8LE-NEXT:    addi r1, r1, 6429; P8LE-NEXT:    ld r0, 16(r1)30; P8LE-NEXT:    mtlr r031; P8LE-NEXT:    blr32;33; P9LE-LABEL: caller_1:34; P9LE:       # %bb.0: # %entry35; P9LE-NEXT:    mflr r036; P9LE-NEXT:    stdu r1, -64(r1)37; P9LE-NEXT:    std r0, 80(r1)38; P9LE-NEXT:    stb r3, 48(r1)39; P9LE-NEXT:    lbz r3, 48(r1)40; P9LE-NEXT:    stb r3, 63(r1)41; P9LE-NEXT:    addi r3, r1, 6342; P9LE-NEXT:    bl callee43; P9LE-NEXT:    nop44; P9LE-NEXT:    li r3, 045; P9LE-NEXT:    addi r1, r1, 6446; P9LE-NEXT:    ld r0, 16(r1)47; P9LE-NEXT:    mtlr r048; P9LE-NEXT:    blr49;50; P10LE-LABEL: caller_1:51; P10LE:       # %bb.0: # %entry52; P10LE-NEXT:    mflr r053; P10LE-NEXT:    std r0, 16(r1)54; P10LE-NEXT:    stdu r1, -64(r1)55; P10LE-NEXT:    stb r3, 48(r1)56; P10LE-NEXT:    lbz r3, 48(r1)57; P10LE-NEXT:    stb r3, 63(r1)58; P10LE-NEXT:    addi r3, r1, 6359; P10LE-NEXT:    bl callee@notoc60; P10LE-NEXT:    li r3, 061; P10LE-NEXT:    addi r1, r1, 6462; P10LE-NEXT:    ld r0, 16(r1)63; P10LE-NEXT:    mtlr r064; P10LE-NEXT:    blr65;66; P8BE-LABEL: caller_1:67; P8BE:       # %bb.0: # %entry68; P8BE-NEXT:    mflr r069; P8BE-NEXT:    stdu r1, -128(r1)70; P8BE-NEXT:    std r0, 144(r1)71; P8BE-NEXT:    stb r3, 183(r1)72; P8BE-NEXT:    lbz r3, 183(r1)73; P8BE-NEXT:    stb r3, 127(r1)74; P8BE-NEXT:    addi r3, r1, 12775; P8BE-NEXT:    bl callee76; P8BE-NEXT:    nop77; P8BE-NEXT:    li r3, 078; P8BE-NEXT:    addi r1, r1, 12879; P8BE-NEXT:    ld r0, 16(r1)80; P8BE-NEXT:    mtlr r081; P8BE-NEXT:    blr82;83; P9BE-LABEL: caller_1:84; P9BE:       # %bb.0: # %entry85; P9BE-NEXT:    mflr r086; P9BE-NEXT:    stdu r1, -128(r1)87; P9BE-NEXT:    std r0, 144(r1)88; P9BE-NEXT:    stb r3, 183(r1)89; P9BE-NEXT:    lbz r3, 183(r1)90; P9BE-NEXT:    stb r3, 127(r1)91; P9BE-NEXT:    addi r3, r1, 12792; P9BE-NEXT:    bl callee93; P9BE-NEXT:    nop94; P9BE-NEXT:    li r3, 095; P9BE-NEXT:    addi r1, r1, 12896; P9BE-NEXT:    ld r0, 16(r1)97; P9BE-NEXT:    mtlr r098; P9BE-NEXT:    blr99;100; P10BE-LABEL: caller_1:101; P10BE:       # %bb.0: # %entry102; P10BE-NEXT:    mflr r0103; P10BE-NEXT:    std r0, 16(r1)104; P10BE-NEXT:    stdu r1, -128(r1)105; P10BE-NEXT:    stb r3, 183(r1)106; P10BE-NEXT:    lbz r3, 183(r1)107; P10BE-NEXT:    stb r3, 127(r1)108; P10BE-NEXT:    addi r3, r1, 127109; P10BE-NEXT:    bl callee110; P10BE-NEXT:    nop111; P10BE-NEXT:    li r3, 0112; P10BE-NEXT:    addi r1, r1, 128113; P10BE-NEXT:    ld r0, 16(r1)114; P10BE-NEXT:    mtlr r0115; P10BE-NEXT:    blr116entry:117  %_param_data = alloca [1 x i8], align 1118  %.unpack = load i8, ptr %data, align 1119  store i8 %.unpack, ptr %_param_data, align 1120  call void @callee(ptr nonnull %_param_data)121  ret i8 0122}123 124define signext i8 @caller_2(ptr nocapture readonly byval([2 x i8]) %data) #0 {125; P8LE-LABEL: caller_2:126; P8LE:       # %bb.0: # %entry127; P8LE-NEXT:    mflr r0128; P8LE-NEXT:    stdu r1, -64(r1)129; P8LE-NEXT:    std r0, 80(r1)130; P8LE-NEXT:    sth r3, 48(r1)131; P8LE-NEXT:    lhz r3, 48(r1)132; P8LE-NEXT:    sth r3, 62(r1)133; P8LE-NEXT:    addi r3, r1, 62134; P8LE-NEXT:    bl callee135; P8LE-NEXT:    nop136; P8LE-NEXT:    li r3, 0137; P8LE-NEXT:    addi r1, r1, 64138; P8LE-NEXT:    ld r0, 16(r1)139; P8LE-NEXT:    mtlr r0140; P8LE-NEXT:    blr141;142; P9LE-LABEL: caller_2:143; P9LE:       # %bb.0: # %entry144; P9LE-NEXT:    mflr r0145; P9LE-NEXT:    stdu r1, -64(r1)146; P9LE-NEXT:    std r0, 80(r1)147; P9LE-NEXT:    sth r3, 48(r1)148; P9LE-NEXT:    lhz r3, 48(r1)149; P9LE-NEXT:    sth r3, 62(r1)150; P9LE-NEXT:    addi r3, r1, 62151; P9LE-NEXT:    bl callee152; P9LE-NEXT:    nop153; P9LE-NEXT:    li r3, 0154; P9LE-NEXT:    addi r1, r1, 64155; P9LE-NEXT:    ld r0, 16(r1)156; P9LE-NEXT:    mtlr r0157; P9LE-NEXT:    blr158;159; P10LE-LABEL: caller_2:160; P10LE:       # %bb.0: # %entry161; P10LE-NEXT:    mflr r0162; P10LE-NEXT:    std r0, 16(r1)163; P10LE-NEXT:    stdu r1, -64(r1)164; P10LE-NEXT:    sth r3, 48(r1)165; P10LE-NEXT:    lhz r3, 48(r1)166; P10LE-NEXT:    sth r3, 62(r1)167; P10LE-NEXT:    addi r3, r1, 62168; P10LE-NEXT:    bl callee@notoc169; P10LE-NEXT:    li r3, 0170; P10LE-NEXT:    addi r1, r1, 64171; P10LE-NEXT:    ld r0, 16(r1)172; P10LE-NEXT:    mtlr r0173; P10LE-NEXT:    blr174;175; P8BE-LABEL: caller_2:176; P8BE:       # %bb.0: # %entry177; P8BE-NEXT:    mflr r0178; P8BE-NEXT:    stdu r1, -128(r1)179; P8BE-NEXT:    std r0, 144(r1)180; P8BE-NEXT:    sth r3, 182(r1)181; P8BE-NEXT:    lhz r3, 182(r1)182; P8BE-NEXT:    sth r3, 126(r1)183; P8BE-NEXT:    addi r3, r1, 126184; P8BE-NEXT:    bl callee185; P8BE-NEXT:    nop186; P8BE-NEXT:    li r3, 0187; P8BE-NEXT:    addi r1, r1, 128188; P8BE-NEXT:    ld r0, 16(r1)189; P8BE-NEXT:    mtlr r0190; P8BE-NEXT:    blr191;192; P9BE-LABEL: caller_2:193; P9BE:       # %bb.0: # %entry194; P9BE-NEXT:    mflr r0195; P9BE-NEXT:    stdu r1, -128(r1)196; P9BE-NEXT:    std r0, 144(r1)197; P9BE-NEXT:    sth r3, 182(r1)198; P9BE-NEXT:    lhz r3, 182(r1)199; P9BE-NEXT:    sth r3, 126(r1)200; P9BE-NEXT:    addi r3, r1, 126201; P9BE-NEXT:    bl callee202; P9BE-NEXT:    nop203; P9BE-NEXT:    li r3, 0204; P9BE-NEXT:    addi r1, r1, 128205; P9BE-NEXT:    ld r0, 16(r1)206; P9BE-NEXT:    mtlr r0207; P9BE-NEXT:    blr208;209; P10BE-LABEL: caller_2:210; P10BE:       # %bb.0: # %entry211; P10BE-NEXT:    mflr r0212; P10BE-NEXT:    std r0, 16(r1)213; P10BE-NEXT:    stdu r1, -128(r1)214; P10BE-NEXT:    sth r3, 182(r1)215; P10BE-NEXT:    lhz r3, 182(r1)216; P10BE-NEXT:    sth r3, 126(r1)217; P10BE-NEXT:    addi r3, r1, 126218; P10BE-NEXT:    bl callee219; P10BE-NEXT:    nop220; P10BE-NEXT:    li r3, 0221; P10BE-NEXT:    addi r1, r1, 128222; P10BE-NEXT:    ld r0, 16(r1)223; P10BE-NEXT:    mtlr r0224; P10BE-NEXT:    blr225entry:226  %_param_data = alloca [2 x i8], align 1227  %.unpack = load i8, ptr %data, align 1228  %.elt1 = getelementptr inbounds [2 x i8], ptr %data, i64 0, i64 1229  %.unpack2 = load i8, ptr %.elt1, align 1230  store i8 %.unpack, ptr %_param_data, align 1231  %.temp.1.gep = getelementptr inbounds [2 x i8], ptr %_param_data, i64 0, i64 1232  store i8 %.unpack2, ptr %.temp.1.gep, align 1233  call void @callee(ptr nonnull %_param_data)234  ret i8 0235}236 237define signext i8 @caller_3(ptr nocapture readonly byval([3 x i8]) %data) #0 {238; P8LE-LABEL: caller_3:239; P8LE:       # %bb.0: # %entry240; P8LE-NEXT:    mflr r0241; P8LE-NEXT:    stdu r1, -64(r1)242; P8LE-NEXT:    std r0, 80(r1)243; P8LE-NEXT:    sth r3, 48(r1)244; P8LE-NEXT:    rldicl r3, r3, 48, 16245; P8LE-NEXT:    stb r3, 50(r1)246; P8LE-NEXT:    lhz r3, 48(r1)247; P8LE-NEXT:    lbz r4, 50(r1)248; P8LE-NEXT:    sth r3, 61(r1)249; P8LE-NEXT:    addi r3, r1, 61250; P8LE-NEXT:    stb r4, 63(r1)251; P8LE-NEXT:    bl callee252; P8LE-NEXT:    nop253; P8LE-NEXT:    li r3, 0254; P8LE-NEXT:    addi r1, r1, 64255; P8LE-NEXT:    ld r0, 16(r1)256; P8LE-NEXT:    mtlr r0257; P8LE-NEXT:    blr258;259; P9LE-LABEL: caller_3:260; P9LE:       # %bb.0: # %entry261; P9LE-NEXT:    mflr r0262; P9LE-NEXT:    stdu r1, -64(r1)263; P9LE-NEXT:    std r0, 80(r1)264; P9LE-NEXT:    sth r3, 48(r1)265; P9LE-NEXT:    rldicl r3, r3, 48, 16266; P9LE-NEXT:    stb r3, 50(r1)267; P9LE-NEXT:    lhz r3, 48(r1)268; P9LE-NEXT:    lbz r4, 50(r1)269; P9LE-NEXT:    sth r3, 61(r1)270; P9LE-NEXT:    addi r3, r1, 61271; P9LE-NEXT:    stb r4, 63(r1)272; P9LE-NEXT:    bl callee273; P9LE-NEXT:    nop274; P9LE-NEXT:    li r3, 0275; P9LE-NEXT:    addi r1, r1, 64276; P9LE-NEXT:    ld r0, 16(r1)277; P9LE-NEXT:    mtlr r0278; P9LE-NEXT:    blr279;280; P10LE-LABEL: caller_3:281; P10LE:       # %bb.0: # %entry282; P10LE-NEXT:    mflr r0283; P10LE-NEXT:    std r0, 16(r1)284; P10LE-NEXT:    stdu r1, -64(r1)285; P10LE-NEXT:    sth r3, 48(r1)286; P10LE-NEXT:    rldicl r3, r3, 48, 16287; P10LE-NEXT:    stb r3, 50(r1)288; P10LE-NEXT:    lhz r3, 48(r1)289; P10LE-NEXT:    lbz r4, 50(r1)290; P10LE-NEXT:    sth r3, 61(r1)291; P10LE-NEXT:    addi r3, r1, 61292; P10LE-NEXT:    stb r4, 63(r1)293; P10LE-NEXT:    bl callee@notoc294; P10LE-NEXT:    li r3, 0295; P10LE-NEXT:    addi r1, r1, 64296; P10LE-NEXT:    ld r0, 16(r1)297; P10LE-NEXT:    mtlr r0298; P10LE-NEXT:    blr299;300; P8BE-LABEL: caller_3:301; P8BE:       # %bb.0: # %entry302; P8BE-NEXT:    mflr r0303; P8BE-NEXT:    stdu r1, -128(r1)304; P8BE-NEXT:    rldicl r4, r3, 56, 8305; P8BE-NEXT:    std r0, 144(r1)306; P8BE-NEXT:    stb r3, 183(r1)307; P8BE-NEXT:    sth r4, 181(r1)308; P8BE-NEXT:    lbz r4, 183(r1)309; P8BE-NEXT:    lhz r3, 181(r1)310; P8BE-NEXT:    stb r4, 127(r1)311; P8BE-NEXT:    sth r3, 125(r1)312; P8BE-NEXT:    addi r3, r1, 125313; P8BE-NEXT:    bl callee314; P8BE-NEXT:    nop315; P8BE-NEXT:    li r3, 0316; P8BE-NEXT:    addi r1, r1, 128317; P8BE-NEXT:    ld r0, 16(r1)318; P8BE-NEXT:    mtlr r0319; P8BE-NEXT:    blr320;321; P9BE-LABEL: caller_3:322; P9BE:       # %bb.0: # %entry323; P9BE-NEXT:    mflr r0324; P9BE-NEXT:    stdu r1, -128(r1)325; P9BE-NEXT:    rldicl r4, r3, 56, 8326; P9BE-NEXT:    std r0, 144(r1)327; P9BE-NEXT:    stb r3, 183(r1)328; P9BE-NEXT:    sth r4, 181(r1)329; P9BE-NEXT:    lbz r4, 183(r1)330; P9BE-NEXT:    lhz r3, 181(r1)331; P9BE-NEXT:    stb r4, 127(r1)332; P9BE-NEXT:    sth r3, 125(r1)333; P9BE-NEXT:    addi r3, r1, 125334; P9BE-NEXT:    bl callee335; P9BE-NEXT:    nop336; P9BE-NEXT:    li r3, 0337; P9BE-NEXT:    addi r1, r1, 128338; P9BE-NEXT:    ld r0, 16(r1)339; P9BE-NEXT:    mtlr r0340; P9BE-NEXT:    blr341;342; P10BE-LABEL: caller_3:343; P10BE:       # %bb.0: # %entry344; P10BE-NEXT:    mflr r0345; P10BE-NEXT:    std r0, 16(r1)346; P10BE-NEXT:    stdu r1, -128(r1)347; P10BE-NEXT:    rldicl r4, r3, 56, 8348; P10BE-NEXT:    stb r3, 183(r1)349; P10BE-NEXT:    sth r4, 181(r1)350; P10BE-NEXT:    lbz r4, 183(r1)351; P10BE-NEXT:    lhz r3, 181(r1)352; P10BE-NEXT:    stb r4, 127(r1)353; P10BE-NEXT:    sth r3, 125(r1)354; P10BE-NEXT:    addi r3, r1, 125355; P10BE-NEXT:    bl callee356; P10BE-NEXT:    nop357; P10BE-NEXT:    li r3, 0358; P10BE-NEXT:    addi r1, r1, 128359; P10BE-NEXT:    ld r0, 16(r1)360; P10BE-NEXT:    mtlr r0361; P10BE-NEXT:    blr362entry:363  %_param_data = alloca [3 x i8], align 1364  %.unpack = load i8, ptr %data, align 1365  %.elt1 = getelementptr inbounds [3 x i8], ptr %data, i64 0, i64 1366  %.unpack2 = load i8, ptr %.elt1, align 1367  %.elt3 = getelementptr inbounds [3 x i8], ptr %data, i64 0, i64 2368  %.unpack4 = load i8, ptr %.elt3, align 1369  store i8 %.unpack, ptr %_param_data, align 1370  %.temp.1.gep = getelementptr inbounds [3 x i8], ptr %_param_data, i64 0, i64 1371  store i8 %.unpack2, ptr %.temp.1.gep, align 1372  %.temp.2.gep = getelementptr inbounds [3 x i8], ptr %_param_data, i64 0, i64 2373  store i8 %.unpack4, ptr %.temp.2.gep, align 1374  call void @callee(ptr nonnull %_param_data)375  ret i8 0376}377 378define signext i8 @caller_4(ptr nocapture readonly byval([4 x i8]) %data) #0 {379; P8LE-LABEL: caller_4:380; P8LE:       # %bb.0: # %entry381; P8LE-NEXT:    mflr r0382; P8LE-NEXT:    stdu r1, -64(r1)383; P8LE-NEXT:    std r0, 80(r1)384; P8LE-NEXT:    stw r3, 48(r1)385; P8LE-NEXT:    lwz r3, 48(r1)386; P8LE-NEXT:    stw r3, 60(r1)387; P8LE-NEXT:    addi r3, r1, 60388; P8LE-NEXT:    bl callee389; P8LE-NEXT:    nop390; P8LE-NEXT:    li r3, 0391; P8LE-NEXT:    addi r1, r1, 64392; P8LE-NEXT:    ld r0, 16(r1)393; P8LE-NEXT:    mtlr r0394; P8LE-NEXT:    blr395;396; P9LE-LABEL: caller_4:397; P9LE:       # %bb.0: # %entry398; P9LE-NEXT:    mflr r0399; P9LE-NEXT:    stdu r1, -64(r1)400; P9LE-NEXT:    std r0, 80(r1)401; P9LE-NEXT:    stw r3, 48(r1)402; P9LE-NEXT:    lwz r3, 48(r1)403; P9LE-NEXT:    stw r3, 60(r1)404; P9LE-NEXT:    addi r3, r1, 60405; P9LE-NEXT:    bl callee406; P9LE-NEXT:    nop407; P9LE-NEXT:    li r3, 0408; P9LE-NEXT:    addi r1, r1, 64409; P9LE-NEXT:    ld r0, 16(r1)410; P9LE-NEXT:    mtlr r0411; P9LE-NEXT:    blr412;413; P10LE-LABEL: caller_4:414; P10LE:       # %bb.0: # %entry415; P10LE-NEXT:    mflr r0416; P10LE-NEXT:    std r0, 16(r1)417; P10LE-NEXT:    stdu r1, -64(r1)418; P10LE-NEXT:    stw r3, 48(r1)419; P10LE-NEXT:    lwz r3, 48(r1)420; P10LE-NEXT:    stw r3, 60(r1)421; P10LE-NEXT:    addi r3, r1, 60422; P10LE-NEXT:    bl callee@notoc423; P10LE-NEXT:    li r3, 0424; P10LE-NEXT:    addi r1, r1, 64425; P10LE-NEXT:    ld r0, 16(r1)426; P10LE-NEXT:    mtlr r0427; P10LE-NEXT:    blr428;429; P8BE-LABEL: caller_4:430; P8BE:       # %bb.0: # %entry431; P8BE-NEXT:    mflr r0432; P8BE-NEXT:    stdu r1, -128(r1)433; P8BE-NEXT:    std r0, 144(r1)434; P8BE-NEXT:    stw r3, 180(r1)435; P8BE-NEXT:    lwz r3, 180(r1)436; P8BE-NEXT:    stw r3, 124(r1)437; P8BE-NEXT:    addi r3, r1, 124438; P8BE-NEXT:    bl callee439; P8BE-NEXT:    nop440; P8BE-NEXT:    li r3, 0441; P8BE-NEXT:    addi r1, r1, 128442; P8BE-NEXT:    ld r0, 16(r1)443; P8BE-NEXT:    mtlr r0444; P8BE-NEXT:    blr445;446; P9BE-LABEL: caller_4:447; P9BE:       # %bb.0: # %entry448; P9BE-NEXT:    mflr r0449; P9BE-NEXT:    stdu r1, -128(r1)450; P9BE-NEXT:    std r0, 144(r1)451; P9BE-NEXT:    stw r3, 180(r1)452; P9BE-NEXT:    lwz r3, 180(r1)453; P9BE-NEXT:    stw r3, 124(r1)454; P9BE-NEXT:    addi r3, r1, 124455; P9BE-NEXT:    bl callee456; P9BE-NEXT:    nop457; P9BE-NEXT:    li r3, 0458; P9BE-NEXT:    addi r1, r1, 128459; P9BE-NEXT:    ld r0, 16(r1)460; P9BE-NEXT:    mtlr r0461; P9BE-NEXT:    blr462;463; P10BE-LABEL: caller_4:464; P10BE:       # %bb.0: # %entry465; P10BE-NEXT:    mflr r0466; P10BE-NEXT:    std r0, 16(r1)467; P10BE-NEXT:    stdu r1, -128(r1)468; P10BE-NEXT:    stw r3, 180(r1)469; P10BE-NEXT:    lwz r3, 180(r1)470; P10BE-NEXT:    stw r3, 124(r1)471; P10BE-NEXT:    addi r3, r1, 124472; P10BE-NEXT:    bl callee473; P10BE-NEXT:    nop474; P10BE-NEXT:    li r3, 0475; P10BE-NEXT:    addi r1, r1, 128476; P10BE-NEXT:    ld r0, 16(r1)477; P10BE-NEXT:    mtlr r0478; P10BE-NEXT:    blr479entry:480  %_param_data = alloca [4 x i8], align 1481  %.unpack = load i8, ptr %data, align 1482  %.elt1 = getelementptr inbounds [4 x i8], ptr %data, i64 0, i64 1483  %.unpack2 = load i8, ptr %.elt1, align 1484  %.elt3 = getelementptr inbounds [4 x i8], ptr %data, i64 0, i64 2485  %.unpack4 = load i8, ptr %.elt3, align 1486  %.elt5 = getelementptr inbounds [4 x i8], ptr %data, i64 0, i64 3487  %.unpack6 = load i8, ptr %.elt5, align 1488  store i8 %.unpack, ptr %_param_data, align 1489  %.temp.1.gep = getelementptr inbounds [4 x i8], ptr %_param_data, i64 0, i64 1490  store i8 %.unpack2, ptr %.temp.1.gep, align 1491  %.temp.2.gep = getelementptr inbounds [4 x i8], ptr %_param_data, i64 0, i64 2492  store i8 %.unpack4, ptr %.temp.2.gep, align 1493  %.temp.3.gep = getelementptr inbounds [4 x i8], ptr %_param_data, i64 0, i64 3494  store i8 %.unpack6, ptr %.temp.3.gep, align 1495  call void @callee(ptr nonnull %_param_data)496  ret i8 0497}498 499define signext i8 @caller_5(ptr nocapture readonly byval([5 x i8]) %data) #0 {500; P8LE-LABEL: caller_5:501; P8LE:       # %bb.0: # %entry502; P8LE-NEXT:    mflr r0503; P8LE-NEXT:    stdu r1, -64(r1)504; P8LE-NEXT:    rldicl r4, r3, 32, 32505; P8LE-NEXT:    std r0, 80(r1)506; P8LE-NEXT:    stw r3, 48(r1)507; P8LE-NEXT:    stw r3, 59(r1)508; P8LE-NEXT:    addi r3, r1, 59509; P8LE-NEXT:    stb r4, 52(r1)510; P8LE-NEXT:    lbz r4, 52(r1)511; P8LE-NEXT:    stb r4, 63(r1)512; P8LE-NEXT:    bl callee513; P8LE-NEXT:    nop514; P8LE-NEXT:    li r3, 0515; P8LE-NEXT:    addi r1, r1, 64516; P8LE-NEXT:    ld r0, 16(r1)517; P8LE-NEXT:    mtlr r0518; P8LE-NEXT:    blr519;520; P9LE-LABEL: caller_5:521; P9LE:       # %bb.0: # %entry522; P9LE-NEXT:    mflr r0523; P9LE-NEXT:    stdu r1, -64(r1)524; P9LE-NEXT:    rldicl r4, r3, 32, 32525; P9LE-NEXT:    std r0, 80(r1)526; P9LE-NEXT:    stw r3, 48(r1)527; P9LE-NEXT:    stw r3, 59(r1)528; P9LE-NEXT:    addi r3, r1, 59529; P9LE-NEXT:    stb r4, 52(r1)530; P9LE-NEXT:    lbz r4, 52(r1)531; P9LE-NEXT:    stb r4, 63(r1)532; P9LE-NEXT:    bl callee533; P9LE-NEXT:    nop534; P9LE-NEXT:    li r3, 0535; P9LE-NEXT:    addi r1, r1, 64536; P9LE-NEXT:    ld r0, 16(r1)537; P9LE-NEXT:    mtlr r0538; P9LE-NEXT:    blr539;540; P10LE-LABEL: caller_5:541; P10LE:       # %bb.0: # %entry542; P10LE-NEXT:    mflr r0543; P10LE-NEXT:    std r0, 16(r1)544; P10LE-NEXT:    stdu r1, -64(r1)545; P10LE-NEXT:    rldicl r4, r3, 32, 32546; P10LE-NEXT:    stw r3, 48(r1)547; P10LE-NEXT:    stw r3, 59(r1)548; P10LE-NEXT:    addi r3, r1, 59549; P10LE-NEXT:    stb r4, 52(r1)550; P10LE-NEXT:    lbz r4, 52(r1)551; P10LE-NEXT:    stb r4, 63(r1)552; P10LE-NEXT:    bl callee@notoc553; P10LE-NEXT:    li r3, 0554; P10LE-NEXT:    addi r1, r1, 64555; P10LE-NEXT:    ld r0, 16(r1)556; P10LE-NEXT:    mtlr r0557; P10LE-NEXT:    blr558;559; P8BE-LABEL: caller_5:560; P8BE:       # %bb.0: # %entry561; P8BE-NEXT:    mflr r0562; P8BE-NEXT:    stdu r1, -128(r1)563; P8BE-NEXT:    std r0, 144(r1)564; P8BE-NEXT:    stb r3, 183(r1)565; P8BE-NEXT:    rldicl r3, r3, 56, 8566; P8BE-NEXT:    lbz r4, 183(r1)567; P8BE-NEXT:    stw r3, 179(r1)568; P8BE-NEXT:    stw r3, 123(r1)569; P8BE-NEXT:    addi r3, r1, 123570; P8BE-NEXT:    stb r4, 127(r1)571; P8BE-NEXT:    bl callee572; P8BE-NEXT:    nop573; P8BE-NEXT:    li r3, 0574; P8BE-NEXT:    addi r1, r1, 128575; P8BE-NEXT:    ld r0, 16(r1)576; P8BE-NEXT:    mtlr r0577; P8BE-NEXT:    blr578;579; P9BE-LABEL: caller_5:580; P9BE:       # %bb.0: # %entry581; P9BE-NEXT:    mflr r0582; P9BE-NEXT:    stdu r1, -128(r1)583; P9BE-NEXT:    std r0, 144(r1)584; P9BE-NEXT:    stb r3, 183(r1)585; P9BE-NEXT:    lbz r4, 183(r1)586; P9BE-NEXT:    rldicl r3, r3, 56, 8587; P9BE-NEXT:    stw r3, 179(r1)588; P9BE-NEXT:    stw r3, 123(r1)589; P9BE-NEXT:    addi r3, r1, 123590; P9BE-NEXT:    stb r4, 127(r1)591; P9BE-NEXT:    bl callee592; P9BE-NEXT:    nop593; P9BE-NEXT:    li r3, 0594; P9BE-NEXT:    addi r1, r1, 128595; P9BE-NEXT:    ld r0, 16(r1)596; P9BE-NEXT:    mtlr r0597; P9BE-NEXT:    blr598;599; P10BE-LABEL: caller_5:600; P10BE:       # %bb.0: # %entry601; P10BE-NEXT:    mflr r0602; P10BE-NEXT:    std r0, 16(r1)603; P10BE-NEXT:    stdu r1, -128(r1)604; P10BE-NEXT:    stb r3, 183(r1)605; P10BE-NEXT:    rldicl r3, r3, 56, 8606; P10BE-NEXT:    lbz r4, 183(r1)607; P10BE-NEXT:    stw r3, 179(r1)608; P10BE-NEXT:    stw r3, 123(r1)609; P10BE-NEXT:    addi r3, r1, 123610; P10BE-NEXT:    stb r4, 127(r1)611; P10BE-NEXT:    bl callee612; P10BE-NEXT:    nop613; P10BE-NEXT:    li r3, 0614; P10BE-NEXT:    addi r1, r1, 128615; P10BE-NEXT:    ld r0, 16(r1)616; P10BE-NEXT:    mtlr r0617; P10BE-NEXT:    blr618entry:619  %_param_data = alloca [5 x i8], align 1620  %.unpack = load i8, ptr %data, align 1621  %.elt1 = getelementptr inbounds [5 x i8], ptr %data, i64 0, i64 1622  %.unpack2 = load i8, ptr %.elt1, align 1623  %.elt3 = getelementptr inbounds [5 x i8], ptr %data, i64 0, i64 2624  %.unpack4 = load i8, ptr %.elt3, align 1625  %.elt5 = getelementptr inbounds [5 x i8], ptr %data, i64 0, i64 3626  %.unpack6 = load i8, ptr %.elt5, align 1627  %.elt7 = getelementptr inbounds [5 x i8], ptr %data, i64 0, i64 4628  %.unpack8 = load i8, ptr %.elt7, align 1629  store i8 %.unpack, ptr %_param_data, align 1630  %.temp.1.gep = getelementptr inbounds [5 x i8], ptr %_param_data, i64 0, i64 1631  store i8 %.unpack2, ptr %.temp.1.gep, align 1632  %.temp.2.gep = getelementptr inbounds [5 x i8], ptr %_param_data, i64 0, i64 2633  store i8 %.unpack4, ptr %.temp.2.gep, align 1634  %.temp.3.gep = getelementptr inbounds [5 x i8], ptr %_param_data, i64 0, i64 3635  store i8 %.unpack6, ptr %.temp.3.gep, align 1636  %.temp.4.gep = getelementptr inbounds [5 x i8], ptr %_param_data, i64 0, i64 4637  store i8 %.unpack8, ptr %.temp.4.gep, align 1638  call void @callee(ptr nonnull %_param_data)639  ret i8 0640}641 642define signext i8 @caller_6(ptr nocapture readonly byval([6 x i8]) %data) #0 {643; P8LE-LABEL: caller_6:644; P8LE:       # %bb.0: # %entry645; P8LE-NEXT:    mflr r0646; P8LE-NEXT:    stdu r1, -64(r1)647; P8LE-NEXT:    std r0, 80(r1)648; P8LE-NEXT:    stw r3, 48(r1)649; P8LE-NEXT:    rldicl r3, r3, 32, 32650; P8LE-NEXT:    sth r3, 52(r1)651; P8LE-NEXT:    lwz r3, 48(r1)652; P8LE-NEXT:    lhz r4, 52(r1)653; P8LE-NEXT:    stw r3, 58(r1)654; P8LE-NEXT:    addi r3, r1, 58655; P8LE-NEXT:    sth r4, 62(r1)656; P8LE-NEXT:    bl callee657; P8LE-NEXT:    nop658; P8LE-NEXT:    li r3, 0659; P8LE-NEXT:    addi r1, r1, 64660; P8LE-NEXT:    ld r0, 16(r1)661; P8LE-NEXT:    mtlr r0662; P8LE-NEXT:    blr663;664; P9LE-LABEL: caller_6:665; P9LE:       # %bb.0: # %entry666; P9LE-NEXT:    mflr r0667; P9LE-NEXT:    stdu r1, -64(r1)668; P9LE-NEXT:    std r0, 80(r1)669; P9LE-NEXT:    stw r3, 48(r1)670; P9LE-NEXT:    rldicl r3, r3, 32, 32671; P9LE-NEXT:    sth r3, 52(r1)672; P9LE-NEXT:    lwz r3, 48(r1)673; P9LE-NEXT:    lhz r4, 52(r1)674; P9LE-NEXT:    stw r3, 58(r1)675; P9LE-NEXT:    addi r3, r1, 58676; P9LE-NEXT:    sth r4, 62(r1)677; P9LE-NEXT:    bl callee678; P9LE-NEXT:    nop679; P9LE-NEXT:    li r3, 0680; P9LE-NEXT:    addi r1, r1, 64681; P9LE-NEXT:    ld r0, 16(r1)682; P9LE-NEXT:    mtlr r0683; P9LE-NEXT:    blr684;685; P10LE-LABEL: caller_6:686; P10LE:       # %bb.0: # %entry687; P10LE-NEXT:    mflr r0688; P10LE-NEXT:    std r0, 16(r1)689; P10LE-NEXT:    stdu r1, -64(r1)690; P10LE-NEXT:    stw r3, 48(r1)691; P10LE-NEXT:    rldicl r3, r3, 32, 32692; P10LE-NEXT:    sth r3, 52(r1)693; P10LE-NEXT:    lwz r3, 48(r1)694; P10LE-NEXT:    lhz r4, 52(r1)695; P10LE-NEXT:    stw r3, 58(r1)696; P10LE-NEXT:    addi r3, r1, 58697; P10LE-NEXT:    sth r4, 62(r1)698; P10LE-NEXT:    bl callee@notoc699; P10LE-NEXT:    li r3, 0700; P10LE-NEXT:    addi r1, r1, 64701; P10LE-NEXT:    ld r0, 16(r1)702; P10LE-NEXT:    mtlr r0703; P10LE-NEXT:    blr704;705; P8BE-LABEL: caller_6:706; P8BE:       # %bb.0: # %entry707; P8BE-NEXT:    mflr r0708; P8BE-NEXT:    stdu r1, -128(r1)709; P8BE-NEXT:    rldicl r4, r3, 48, 16710; P8BE-NEXT:    std r0, 144(r1)711; P8BE-NEXT:    sth r3, 182(r1)712; P8BE-NEXT:    stw r4, 178(r1)713; P8BE-NEXT:    lhz r4, 182(r1)714; P8BE-NEXT:    lwz r3, 178(r1)715; P8BE-NEXT:    sth r4, 126(r1)716; P8BE-NEXT:    stw r3, 122(r1)717; P8BE-NEXT:    addi r3, r1, 122718; P8BE-NEXT:    bl callee719; P8BE-NEXT:    nop720; P8BE-NEXT:    li r3, 0721; P8BE-NEXT:    addi r1, r1, 128722; P8BE-NEXT:    ld r0, 16(r1)723; P8BE-NEXT:    mtlr r0724; P8BE-NEXT:    blr725;726; P9BE-LABEL: caller_6:727; P9BE:       # %bb.0: # %entry728; P9BE-NEXT:    mflr r0729; P9BE-NEXT:    stdu r1, -128(r1)730; P9BE-NEXT:    rldicl r4, r3, 48, 16731; P9BE-NEXT:    std r0, 144(r1)732; P9BE-NEXT:    sth r3, 182(r1)733; P9BE-NEXT:    stw r4, 178(r1)734; P9BE-NEXT:    lhz r4, 182(r1)735; P9BE-NEXT:    lwz r3, 178(r1)736; P9BE-NEXT:    sth r4, 126(r1)737; P9BE-NEXT:    stw r3, 122(r1)738; P9BE-NEXT:    addi r3, r1, 122739; P9BE-NEXT:    bl callee740; P9BE-NEXT:    nop741; P9BE-NEXT:    li r3, 0742; P9BE-NEXT:    addi r1, r1, 128743; P9BE-NEXT:    ld r0, 16(r1)744; P9BE-NEXT:    mtlr r0745; P9BE-NEXT:    blr746;747; P10BE-LABEL: caller_6:748; P10BE:       # %bb.0: # %entry749; P10BE-NEXT:    mflr r0750; P10BE-NEXT:    std r0, 16(r1)751; P10BE-NEXT:    stdu r1, -128(r1)752; P10BE-NEXT:    rldicl r4, r3, 48, 16753; P10BE-NEXT:    sth r3, 182(r1)754; P10BE-NEXT:    stw r4, 178(r1)755; P10BE-NEXT:    lhz r4, 182(r1)756; P10BE-NEXT:    lwz r3, 178(r1)757; P10BE-NEXT:    sth r4, 126(r1)758; P10BE-NEXT:    stw r3, 122(r1)759; P10BE-NEXT:    addi r3, r1, 122760; P10BE-NEXT:    bl callee761; P10BE-NEXT:    nop762; P10BE-NEXT:    li r3, 0763; P10BE-NEXT:    addi r1, r1, 128764; P10BE-NEXT:    ld r0, 16(r1)765; P10BE-NEXT:    mtlr r0766; P10BE-NEXT:    blr767entry:768  %_param_data = alloca [6 x i8], align 1769  %.unpack = load i8, ptr %data, align 1770  %.elt1 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 1771  %.unpack2 = load i8, ptr %.elt1, align 1772  %.elt3 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 2773  %.unpack4 = load i8, ptr %.elt3, align 1774  %.elt5 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 3775  %.unpack6 = load i8, ptr %.elt5, align 1776  %.elt7 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 4777  %.unpack8 = load i8, ptr %.elt7, align 1778  %.elt9 = getelementptr inbounds [6 x i8], ptr %data, i64 0, i64 5779  %.unpack10 = load i8, ptr %.elt9, align 1780  store i8 %.unpack, ptr %_param_data, align 1781  %.temp.1.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 1782  store i8 %.unpack2, ptr %.temp.1.gep, align 1783  %.temp.2.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 2784  store i8 %.unpack4, ptr %.temp.2.gep, align 1785  %.temp.3.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 3786  store i8 %.unpack6, ptr %.temp.3.gep, align 1787  %.temp.4.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 4788  store i8 %.unpack8, ptr %.temp.4.gep, align 1789  %.temp.5.gep = getelementptr inbounds [6 x i8], ptr %_param_data, i64 0, i64 5790  store i8 %.unpack10, ptr %.temp.5.gep, align 1791  call void @callee(ptr nonnull %_param_data)792  ret i8 0793}794 795define signext i8 @caller_7(ptr nocapture readonly byval([7 x i8]) %data) #0 {796; P8LE-LABEL: caller_7:797; P8LE:       # %bb.0: # %entry798; P8LE-NEXT:    mflr r0799; P8LE-NEXT:    stdu r1, -64(r1)800; P8LE-NEXT:    rldicl r4, r3, 32, 32801; P8LE-NEXT:    std r0, 80(r1)802; P8LE-NEXT:    stw r3, 48(r1)803; P8LE-NEXT:    stw r3, 57(r1)804; P8LE-NEXT:    sth r4, 52(r1)805; P8LE-NEXT:    rldicl r4, r3, 16, 48806; P8LE-NEXT:    stb r4, 54(r1)807; P8LE-NEXT:    lhz r4, 52(r1)808; P8LE-NEXT:    lbz r3, 54(r1)809; P8LE-NEXT:    sth r4, 61(r1)810; P8LE-NEXT:    stb r3, 63(r1)811; P8LE-NEXT:    addi r3, r1, 57812; P8LE-NEXT:    bl callee813; P8LE-NEXT:    nop814; P8LE-NEXT:    li r3, 0815; P8LE-NEXT:    addi r1, r1, 64816; P8LE-NEXT:    ld r0, 16(r1)817; P8LE-NEXT:    mtlr r0818; P8LE-NEXT:    blr819;820; P9LE-LABEL: caller_7:821; P9LE:       # %bb.0: # %entry822; P9LE-NEXT:    mflr r0823; P9LE-NEXT:    stdu r1, -64(r1)824; P9LE-NEXT:    rldicl r4, r3, 32, 32825; P9LE-NEXT:    std r0, 80(r1)826; P9LE-NEXT:    stw r3, 48(r1)827; P9LE-NEXT:    stw r3, 57(r1)828; P9LE-NEXT:    sth r4, 52(r1)829; P9LE-NEXT:    rldicl r4, r3, 16, 48830; P9LE-NEXT:    addi r3, r1, 57831; P9LE-NEXT:    stb r4, 54(r1)832; P9LE-NEXT:    lhz r4, 52(r1)833; P9LE-NEXT:    lbz r5, 54(r1)834; P9LE-NEXT:    sth r4, 61(r1)835; P9LE-NEXT:    stb r5, 63(r1)836; P9LE-NEXT:    bl callee837; P9LE-NEXT:    nop838; P9LE-NEXT:    li r3, 0839; P9LE-NEXT:    addi r1, r1, 64840; P9LE-NEXT:    ld r0, 16(r1)841; P9LE-NEXT:    mtlr r0842; P9LE-NEXT:    blr843;844; P10LE-LABEL: caller_7:845; P10LE:       # %bb.0: # %entry846; P10LE-NEXT:    mflr r0847; P10LE-NEXT:    std r0, 16(r1)848; P10LE-NEXT:    stdu r1, -64(r1)849; P10LE-NEXT:    rldicl r4, r3, 32, 32850; P10LE-NEXT:    stw r3, 48(r1)851; P10LE-NEXT:    stw r3, 57(r1)852; P10LE-NEXT:    sth r4, 52(r1)853; P10LE-NEXT:    rldicl r4, r3, 16, 48854; P10LE-NEXT:    addi r3, r1, 57855; P10LE-NEXT:    stb r4, 54(r1)856; P10LE-NEXT:    lhz r4, 52(r1)857; P10LE-NEXT:    lbz r5, 54(r1)858; P10LE-NEXT:    sth r4, 61(r1)859; P10LE-NEXT:    stb r5, 63(r1)860; P10LE-NEXT:    bl callee@notoc861; P10LE-NEXT:    li r3, 0862; P10LE-NEXT:    addi r1, r1, 64863; P10LE-NEXT:    ld r0, 16(r1)864; P10LE-NEXT:    mtlr r0865; P10LE-NEXT:    blr866;867; P8BE-LABEL: caller_7:868; P8BE:       # %bb.0: # %entry869; P8BE-NEXT:    mflr r0870; P8BE-NEXT:    stdu r1, -128(r1)871; P8BE-NEXT:    std r0, 144(r1)872; P8BE-NEXT:    rldicl r4, r3, 56, 8873; P8BE-NEXT:    stb r3, 183(r1)874; P8BE-NEXT:    rldicl r3, r3, 40, 24875; P8BE-NEXT:    stw r3, 177(r1)876; P8BE-NEXT:    stw r3, 121(r1)877; P8BE-NEXT:    lbz r3, 183(r1)878; P8BE-NEXT:    sth r4, 181(r1)879; P8BE-NEXT:    lhz r4, 181(r1)880; P8BE-NEXT:    stb r3, 127(r1)881; P8BE-NEXT:    addi r3, r1, 121882; P8BE-NEXT:    sth r4, 125(r1)883; P8BE-NEXT:    bl callee884; P8BE-NEXT:    nop885; P8BE-NEXT:    li r3, 0886; P8BE-NEXT:    addi r1, r1, 128887; P8BE-NEXT:    ld r0, 16(r1)888; P8BE-NEXT:    mtlr r0889; P8BE-NEXT:    blr890;891; P9BE-LABEL: caller_7:892; P9BE:       # %bb.0: # %entry893; P9BE-NEXT:    mflr r0894; P9BE-NEXT:    stdu r1, -128(r1)895; P9BE-NEXT:    rldicl r4, r3, 56, 8896; P9BE-NEXT:    std r0, 144(r1)897; P9BE-NEXT:    stb r3, 183(r1)898; P9BE-NEXT:    lbz r5, 183(r1)899; P9BE-NEXT:    rldicl r3, r3, 40, 24900; P9BE-NEXT:    sth r4, 181(r1)901; P9BE-NEXT:    stw r3, 177(r1)902; P9BE-NEXT:    lhz r4, 181(r1)903; P9BE-NEXT:    stw r3, 121(r1)904; P9BE-NEXT:    addi r3, r1, 121905; P9BE-NEXT:    stb r5, 127(r1)906; P9BE-NEXT:    sth r4, 125(r1)907; P9BE-NEXT:    bl callee908; P9BE-NEXT:    nop909; P9BE-NEXT:    li r3, 0910; P9BE-NEXT:    addi r1, r1, 128911; P9BE-NEXT:    ld r0, 16(r1)912; P9BE-NEXT:    mtlr r0913; P9BE-NEXT:    blr914;915; P10BE-LABEL: caller_7:916; P10BE:       # %bb.0: # %entry917; P10BE-NEXT:    mflr r0918; P10BE-NEXT:    std r0, 16(r1)919; P10BE-NEXT:    stdu r1, -128(r1)920; P10BE-NEXT:    rldicl r4, r3, 56, 8921; P10BE-NEXT:    stb r3, 183(r1)922; P10BE-NEXT:    rldicl r3, r3, 40, 24923; P10BE-NEXT:    lbz r5, 183(r1)924; P10BE-NEXT:    sth r4, 181(r1)925; P10BE-NEXT:    stw r3, 177(r1)926; P10BE-NEXT:    stw r3, 121(r1)927; P10BE-NEXT:    addi r3, r1, 121928; P10BE-NEXT:    lhz r4, 181(r1)929; P10BE-NEXT:    stb r5, 127(r1)930; P10BE-NEXT:    sth r4, 125(r1)931; P10BE-NEXT:    bl callee932; P10BE-NEXT:    nop933; P10BE-NEXT:    li r3, 0934; P10BE-NEXT:    addi r1, r1, 128935; P10BE-NEXT:    ld r0, 16(r1)936; P10BE-NEXT:    mtlr r0937; P10BE-NEXT:    blr938entry:939  %_param_data = alloca [7 x i8], align 1940  %.unpack = load i8, ptr %data, align 1941  %.elt1 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 1942  %.unpack2 = load i8, ptr %.elt1, align 1943  %.elt3 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 2944  %.unpack4 = load i8, ptr %.elt3, align 1945  %.elt5 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 3946  %.unpack6 = load i8, ptr %.elt5, align 1947  %.elt7 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 4948  %.unpack8 = load i8, ptr %.elt7, align 1949  %.elt9 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 5950  %.unpack10 = load i8, ptr %.elt9, align 1951  %.elt11 = getelementptr inbounds [7 x i8], ptr %data, i64 0, i64 6952  %.unpack12 = load i8, ptr %.elt11, align 1953  store i8 %.unpack, ptr %_param_data, align 1954  %.temp.1.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 1955  store i8 %.unpack2, ptr %.temp.1.gep, align 1956  %.temp.2.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 2957  store i8 %.unpack4, ptr %.temp.2.gep, align 1958  %.temp.3.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 3959  store i8 %.unpack6, ptr %.temp.3.gep, align 1960  %.temp.4.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 4961  store i8 %.unpack8, ptr %.temp.4.gep, align 1962  %.temp.5.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 5963  store i8 %.unpack10, ptr %.temp.5.gep, align 1964  %.temp.6.gep = getelementptr inbounds [7 x i8], ptr %_param_data, i64 0, i64 6965  store i8 %.unpack12, ptr %.temp.6.gep, align 1966  call void @callee(ptr nonnull %_param_data)967  ret i8 0968}969 970declare void @callee(ptr) local_unnamed_addr #0971 972attributes #0 = { nounwind }973