250 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=powerpc64-unknown-aix-xcoff -verify-machineinstrs \3; RUN: -ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck \4; RUN: --check-prefix=AIX64 %s5; RUN: llc -mtriple=powerpc-unknown-aix-xcoff -verify-machineinstrs \6; RUN: -ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck \7; RUN: --check-prefix=AIX32 %s8; RUN: llc -mtriple=powerpc64le-- -verify-machineinstrs \9; RUN: -ppc-asm-full-reg-names -mcpu=pwr8 < %s | FileCheck --check-prefix=LE %s10 11define dso_local void @test1(ptr %v, i64 %a) local_unnamed_addr #0 {12; AIX64-LABEL: test1:13; AIX64: # %bb.0: # %entry14; AIX64-NEXT: mtvsrd vs34, r415; AIX64-NEXT: #APP16; AIX64-NEXT: stvx v2, 0, r317; AIX64-NEXT: #NO_APP18; AIX64-NEXT: blr19;20; AIX32-LABEL: test1:21; AIX32: # %bb.0: # %entry22; AIX32-NEXT: stw r5, -4(r1)23; AIX32-NEXT: stw r4, -8(r1)24; AIX32-NEXT: lfd f0, -8(r1)25; AIX32-NEXT: xxlor vs34, f0, f026; AIX32-NEXT: #APP27; AIX32-NEXT: stvx v2, 0, r328; AIX32-NEXT: #NO_APP29; AIX32-NEXT: blr30;31; LE-LABEL: test1:32; LE: # %bb.0: # %entry33; LE-NEXT: mtvsrd vs34, r434; LE-NEXT: #APP35; LE-NEXT: stvx v2, 0, r336; LE-NEXT: #NO_APP37; LE-NEXT: blr38entry:39 tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i64 %a, ptr %v)40 ret void41}42 43define dso_local void @test2(ptr %v, i32 signext %a) local_unnamed_addr #0 {44; AIX64-LABEL: test2:45; AIX64: # %bb.0: # %entry46; AIX64-NEXT: clrldi r4, r4, 3247; AIX64-NEXT: mtvsrd vs34, r448; AIX64-NEXT: #APP49; AIX64-NEXT: stvx v2, 0, r350; AIX64-NEXT: #NO_APP51; AIX64-NEXT: blr52;53; AIX32-LABEL: test2:54; AIX32: # %bb.0: # %entry55; AIX32-NEXT: stw r4, -4(r1)56; AIX32-NEXT: li r4, 057; AIX32-NEXT: stw r4, -8(r1)58; AIX32-NEXT: lfd f0, -8(r1)59; AIX32-NEXT: xxlor vs34, f0, f060; AIX32-NEXT: #APP61; AIX32-NEXT: stvx v2, 0, r362; AIX32-NEXT: #NO_APP63; AIX32-NEXT: blr64;65; LE-LABEL: test2:66; LE: # %bb.0: # %entry67; LE-NEXT: clrldi r4, r4, 3268; LE-NEXT: mtvsrd vs34, r469; LE-NEXT: #APP70; LE-NEXT: stvx v2, 0, r371; LE-NEXT: #NO_APP72; LE-NEXT: blr73entry:74 tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i32 %a, ptr %v)75 ret void76}77 78define dso_local void @test3(ptr %v, i16 signext %a) local_unnamed_addr #0 {79; AIX64-LABEL: test3:80; AIX64: # %bb.0: # %entry81; AIX64-NEXT: clrldi r4, r4, 4882; AIX64-NEXT: mtvsrd vs34, r483; AIX64-NEXT: #APP84; AIX64-NEXT: stvx v2, 0, r385; AIX64-NEXT: #NO_APP86; AIX64-NEXT: blr87;88; AIX32-LABEL: test3:89; AIX32: # %bb.0: # %entry90; AIX32-NEXT: li r5, 091; AIX32-NEXT: clrlwi r4, r4, 1692; AIX32-NEXT: stw r5, -8(r1)93; AIX32-NEXT: stw r4, -4(r1)94; AIX32-NEXT: lfd f0, -8(r1)95; AIX32-NEXT: xxlor vs34, f0, f096; AIX32-NEXT: #APP97; AIX32-NEXT: stvx v2, 0, r398; AIX32-NEXT: #NO_APP99; AIX32-NEXT: blr100;101; LE-LABEL: test3:102; LE: # %bb.0: # %entry103; LE-NEXT: clrldi r4, r4, 48104; LE-NEXT: mtvsrd vs34, r4105; LE-NEXT: #APP106; LE-NEXT: stvx v2, 0, r3107; LE-NEXT: #NO_APP108; LE-NEXT: blr109entry:110 tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i16 %a, ptr %v)111 ret void112}113 114define dso_local void @test4(ptr %v, i8 signext %a) local_unnamed_addr #0 {115; AIX64-LABEL: test4:116; AIX64: # %bb.0: # %entry117; AIX64-NEXT: clrldi r4, r4, 56118; AIX64-NEXT: mtvsrd vs34, r4119; AIX64-NEXT: #APP120; AIX64-NEXT: stvx v2, 0, r3121; AIX64-NEXT: #NO_APP122; AIX64-NEXT: blr123;124; AIX32-LABEL: test4:125; AIX32: # %bb.0: # %entry126; AIX32-NEXT: li r5, 0127; AIX32-NEXT: clrlwi r4, r4, 24128; AIX32-NEXT: stw r5, -8(r1)129; AIX32-NEXT: stw r4, -4(r1)130; AIX32-NEXT: lfd f0, -8(r1)131; AIX32-NEXT: xxlor vs34, f0, f0132; AIX32-NEXT: #APP133; AIX32-NEXT: stvx v2, 0, r3134; AIX32-NEXT: #NO_APP135; AIX32-NEXT: blr136;137; LE-LABEL: test4:138; LE: # %bb.0: # %entry139; LE-NEXT: clrldi r4, r4, 56140; LE-NEXT: mtvsrd vs34, r4141; LE-NEXT: #APP142; LE-NEXT: stvx v2, 0, r3143; LE-NEXT: #NO_APP144; LE-NEXT: blr145entry:146 tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i8 %a, ptr %v)147 ret void148}149 150define dso_local void @test6(ptr %v, i32 zeroext %a) local_unnamed_addr #0 {151; AIX64-LABEL: test6:152; AIX64: # %bb.0: # %entry153; AIX64-NEXT: mtvsrd vs34, r4154; AIX64-NEXT: #APP155; AIX64-NEXT: stvx v2, 0, r3156; AIX64-NEXT: #NO_APP157; AIX64-NEXT: blr158;159; AIX32-LABEL: test6:160; AIX32: # %bb.0: # %entry161; AIX32-NEXT: stw r4, -4(r1)162; AIX32-NEXT: li r4, 0163; AIX32-NEXT: stw r4, -8(r1)164; AIX32-NEXT: lfd f0, -8(r1)165; AIX32-NEXT: xxlor vs34, f0, f0166; AIX32-NEXT: #APP167; AIX32-NEXT: stvx v2, 0, r3168; AIX32-NEXT: #NO_APP169; AIX32-NEXT: blr170;171; LE-LABEL: test6:172; LE: # %bb.0: # %entry173; LE-NEXT: mtvsrd vs34, r4174; LE-NEXT: #APP175; LE-NEXT: stvx v2, 0, r3176; LE-NEXT: #NO_APP177; LE-NEXT: blr178entry:179 tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i32 %a, ptr %v)180 ret void181}182 183define dso_local void @test7(ptr %v, i16 zeroext %a) local_unnamed_addr #0 {184; AIX64-LABEL: test7:185; AIX64: # %bb.0: # %entry186; AIX64-NEXT: mtvsrd vs34, r4187; AIX64-NEXT: #APP188; AIX64-NEXT: stvx v2, 0, r3189; AIX64-NEXT: #NO_APP190; AIX64-NEXT: blr191;192; AIX32-LABEL: test7:193; AIX32: # %bb.0: # %entry194; AIX32-NEXT: stw r4, -4(r1)195; AIX32-NEXT: li r4, 0196; AIX32-NEXT: stw r4, -8(r1)197; AIX32-NEXT: lfd f0, -8(r1)198; AIX32-NEXT: xxlor vs34, f0, f0199; AIX32-NEXT: #APP200; AIX32-NEXT: stvx v2, 0, r3201; AIX32-NEXT: #NO_APP202; AIX32-NEXT: blr203;204; LE-LABEL: test7:205; LE: # %bb.0: # %entry206; LE-NEXT: mtvsrd vs34, r4207; LE-NEXT: #APP208; LE-NEXT: stvx v2, 0, r3209; LE-NEXT: #NO_APP210; LE-NEXT: blr211entry:212 tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i16 %a, ptr %v)213 ret void214}215 216define dso_local void @test8(ptr %v, i8 zeroext %a) local_unnamed_addr #0 {217; AIX64-LABEL: test8:218; AIX64: # %bb.0: # %entry219; AIX64-NEXT: mtvsrd vs34, r4220; AIX64-NEXT: #APP221; AIX64-NEXT: stvx v2, 0, r3222; AIX64-NEXT: #NO_APP223; AIX64-NEXT: blr224;225; AIX32-LABEL: test8:226; AIX32: # %bb.0: # %entry227; AIX32-NEXT: stw r4, -4(r1)228; AIX32-NEXT: li r4, 0229; AIX32-NEXT: stw r4, -8(r1)230; AIX32-NEXT: lfd f0, -8(r1)231; AIX32-NEXT: xxlor vs34, f0, f0232; AIX32-NEXT: #APP233; AIX32-NEXT: stvx v2, 0, r3234; AIX32-NEXT: #NO_APP235; AIX32-NEXT: blr236;237; LE-LABEL: test8:238; LE: # %bb.0: # %entry239; LE-NEXT: mtvsrd vs34, r4240; LE-NEXT: #APP241; LE-NEXT: stvx v2, 0, r3242; LE-NEXT: #NO_APP243; LE-NEXT: blr244entry:245 tail call void asm sideeffect "stvx $0,0,$1", "v,r,~{memory}"(i8 %a, ptr %v)246 ret void247}248 249attributes #0 = { nounwind }250