brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · 3f6838a Raw
155 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=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr < %s | \4; RUN:   FileCheck %s5; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \6; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr < %s | \7; RUN:   FileCheck %s --check-prefix=CHECK-BE8 9%96 = type <{ i32 }>10%97 = type <{ i32 }>11%98 = type <{ i32 }>12%100 = type <{ i8, i8, i8, i8, i32, i64, i64, [1 x i64], [1 x i64], [1 x i64] }>13%101 = type <{ i8, i8, i8, i8, i32, i64, i64, [1 x i64], [1 x i64], [1 x i64], [24 x i8] }>14%102 = type <{ i8, i8, i8, i8, i32, i64, i64, [1 x i64], [1 x i64], [1 x i64] }>15%103 = type <{ ptr, i8, i8, i8, i8, [4 x i8], i32, [12 x i8], i32, [4 x i8] }>16%104 = type <{ i32 }>17%105 = type <{ i32 }>18%106 = type <{ i32 }>19 20; Function Attrs: nobuiltin norecurse21define dso_local signext i32 @test_FI_elim(ptr noalias nocapture dereferenceable(40) %arg, ptr noalias nocapture nonnull readonly %arg2, ptr noalias nocapture nonnull readonly %arg3, ptr noalias nocapture nonnull readonly %arg4, ptr noalias nocapture dereferenceable(48) %arg6, ptr noalias nocapture dereferenceable(72) %arg7) local_unnamed_addr #2 {22; CHECK-LABEL: test_FI_elim:23; CHECK:       # %bb.0: # %bb24; CHECK-NEXT:    mflr r025; CHECK-NEXT:    std r0, 16(r1)26; CHECK-NEXT:    stdu r1, -80(r1)27; CHECK-NEXT:    .cfi_def_cfa_offset 8028; CHECK-NEXT:    .cfi_offset lr, 1629; CHECK-NEXT:    lxv v2, 0(r3)30; CHECK-NEXT:    mr r9, r631; CHECK-NEXT:    mr r6, r532; CHECK-NEXT:    li r12, -12733; CHECK-NEXT:    li r0, 434; CHECK-NEXT:    stb r12, 0(r3)35; CHECK-NEXT:    li r2, 136; CHECK-NEXT:    std r0, 0(r3)37; CHECK-NEXT:    stw r2, 0(r3)38; CHECK-NEXT:    li r11, 339; CHECK-NEXT:    stb r11, 0(0)40; CHECK-NEXT:    mfvsrd r5, v241; CHECK-NEXT:    vaddudm v3, v2, v242; CHECK-NEXT:    pstxv v2, 64(r1), 043; CHECK-NEXT:    neg r5, r544; CHECK-NEXT:    mfvsrd r10, v345; CHECK-NEXT:    std r5, 0(r3)46; CHECK-NEXT:    lbz r5, 2(r7)47; CHECK-NEXT:    stb r11, 0(r3)48; CHECK-NEXT:    stb r12, 0(r3)49; CHECK-NEXT:    std r2, 0(r3)50; CHECK-NEXT:    mr r7, r951; CHECK-NEXT:    neg r10, r1052; CHECK-NEXT:    rlwinm r5, r5, 0, 27, 2753; CHECK-NEXT:    stb r5, 0(0)54; CHECK-NEXT:    lbz r5, 2(r8)55; CHECK-NEXT:    rlwinm r5, r5, 0, 27, 2756; CHECK-NEXT:    stb r5, 0(r3)57; CHECK-NEXT:    li r5, 258; CHECK-NEXT:    std r0, 0(r3)59; CHECK-NEXT:    stw r5, 0(r3)60; CHECK-NEXT:    mr r5, r461; CHECK-NEXT:    std r10, 0(r3)62; CHECK-NEXT:    bl foo@notoc63; CHECK-NEXT:    extsw r3, r364; CHECK-NEXT:    addi r1, r1, 8065; CHECK-NEXT:    ld r0, 16(r1)66; CHECK-NEXT:    mtlr r067; CHECK-NEXT:    blr68;69; CHECK-BE-LABEL: test_FI_elim:70; CHECK-BE:       # %bb.0: # %bb71; CHECK-BE-NEXT:    mflr r072; CHECK-BE-NEXT:    std r0, 16(r1)73; CHECK-BE-NEXT:    stdu r1, -176(r1)74; CHECK-BE-NEXT:    .cfi_def_cfa_offset 17675; CHECK-BE-NEXT:    .cfi_offset lr, 1676; CHECK-BE-NEXT:    .cfi_offset r30, -1677; CHECK-BE-NEXT:    lxv v2, 0(r3)78; CHECK-BE-NEXT:    mr r9, r679; CHECK-BE-NEXT:    mr r6, r580; CHECK-BE-NEXT:    std r30, 160(r1) # 8-byte Folded Spill81; CHECK-BE-NEXT:    li r12, -12782; CHECK-BE-NEXT:    li r0, 483; CHECK-BE-NEXT:    stb r12, 0(r3)84; CHECK-BE-NEXT:    li r30, 185; CHECK-BE-NEXT:    std r0, 0(r3)86; CHECK-BE-NEXT:    stw r30, 0(r3)87; CHECK-BE-NEXT:    li r11, 388; CHECK-BE-NEXT:    stb r11, 0(0)89; CHECK-BE-NEXT:    mfvsrld r5, v290; CHECK-BE-NEXT:    vaddudm v3, v2, v291; CHECK-BE-NEXT:    pstxv v2, 144(r1), 092; CHECK-BE-NEXT:    mfvsrld r10, v393; CHECK-BE-NEXT:    neg r5, r594; CHECK-BE-NEXT:    std r5, 0(r3)95; CHECK-BE-NEXT:    lbz r5, 2(r7)96; CHECK-BE-NEXT:    stb r11, 0(r3)97; CHECK-BE-NEXT:    stb r12, 0(r3)98; CHECK-BE-NEXT:    std r30, 0(r3)99; CHECK-BE-NEXT:    mr r7, r9100; CHECK-BE-NEXT:    neg r10, r10101; CHECK-BE-NEXT:    rlwinm r5, r5, 0, 27, 27102; CHECK-BE-NEXT:    stb r5, 0(0)103; CHECK-BE-NEXT:    lbz r5, 2(r8)104; CHECK-BE-NEXT:    rlwinm r5, r5, 0, 27, 27105; CHECK-BE-NEXT:    stb r5, 0(r3)106; CHECK-BE-NEXT:    li r5, 2107; CHECK-BE-NEXT:    std r0, 0(r3)108; CHECK-BE-NEXT:    stw r5, 0(r3)109; CHECK-BE-NEXT:    mr r5, r4110; CHECK-BE-NEXT:    std r10, 0(r3)111; CHECK-BE-NEXT:    bl foo112; CHECK-BE-NEXT:    nop113; CHECK-BE-NEXT:    ld r30, 160(r1) # 8-byte Folded Reload114; CHECK-BE-NEXT:    extsw r3, r3115; CHECK-BE-NEXT:    addi r1, r1, 176116; CHECK-BE-NEXT:    ld r0, 16(r1)117; CHECK-BE-NEXT:    mtlr r0118; CHECK-BE-NEXT:    blr119bb:120  %i = alloca %102, align 8121  %i8 = load <2 x i64>, ptr undef, align 8122  %i9 = extractelement <2 x i64> %i8, i32 1123  %i10 = sub i64 0, %i9124  %i11 = load <2 x i64>, ptr undef, align 8125  %i12 = load <2 x i64>, ptr undef, align 8126  %i13 = add nsw <2 x i64> %i11, %i12127  %i14 = extractelement <2 x i64> %i13, i32 1128  %i15 = sub i64 0, %i14129  store i8 3, ptr null, align 8130  store i8 -127, ptr undef, align 1131  store i64 4, ptr undef, align 8132  store i32 1, ptr undef, align 4133  %i16 = getelementptr inbounds %102, ptr %i, i64 0, i32 8, i64 0134  store <2 x i64> %i8, ptr %i16, align 8135  store i64 %i10, ptr undef, align 8136  store i8 3, ptr undef, align 8137  %i18 = getelementptr inbounds %100, ptr %arg6, i64 0, i32 2138  %i19 = load i8, ptr %i18, align 1139  %i20 = and i8 %i19, 16140  store i8 %i20, ptr null, align 2141  store i8 -127, ptr undef, align 1142  store i64 1, ptr undef, align 8143  %i21 = getelementptr inbounds %101, ptr %arg7, i64 0, i32 2144  %i22 = load i8, ptr %i21, align 1145  %i23 = and i8 %i22, 16146  store i8 %i23, ptr undef, align 2147  store i64 4, ptr undef, align 8148  store i32 2, ptr undef, align 4149  store i64 %i15, ptr undef, align 8150  %i28 = call i32 @foo(ptr nonnull %arg, ptr nonnull undef, ptr %arg2, ptr %arg3, ptr %arg4)151  ret i32 %i28152}153 154declare dso_local i32 @foo(ptr, ptr, ptr, ptr, ptr) local_unnamed_addr #1155