brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.3 KiB · 74765ff Raw
258 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc  -O0 -mtriple=mipsel-linux-gnu -global-isel -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS323; RUN: llc  -O0 -mtriple=mipsel-linux-gnu -global-isel -relocation-model=pic -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS32_PIC4 5define i32 @mod4_0_to_11(i32 %a) {6; MIPS32-LABEL: mod4_0_to_11:7; MIPS32:       # %bb.0: # %entry8; MIPS32-NEXT:    addiu $sp, $sp, -329; MIPS32-NEXT:    .cfi_def_cfa_offset 3210; MIPS32-NEXT:    sw $4, 4($sp) # 4-byte Folded Spill11; MIPS32-NEXT:    ori $1, $zero, 712; MIPS32-NEXT:    ori $2, $zero, 313; MIPS32-NEXT:    sw $2, 8($sp) # 4-byte Folded Spill14; MIPS32-NEXT:    ori $2, $zero, 215; MIPS32-NEXT:    sw $2, 12($sp) # 4-byte Folded Spill16; MIPS32-NEXT:    ori $2, $zero, 117; MIPS32-NEXT:    sw $2, 16($sp) # 4-byte Folded Spill18; MIPS32-NEXT:    ori $2, $zero, 019; MIPS32-NEXT:    sw $2, 20($sp) # 4-byte Folded Spill20; MIPS32-NEXT:    addiu $2, $zero, 6553521; MIPS32-NEXT:    sw $2, 24($sp) # 4-byte Folded Spill22; MIPS32-NEXT:    ori $2, $zero, 023; MIPS32-NEXT:    subu $2, $4, $224; MIPS32-NEXT:    sw $2, 28($sp) # 4-byte Folded Spill25; MIPS32-NEXT:    sltu $1, $1, $226; MIPS32-NEXT:    bnez $1, $BB0_627; MIPS32-NEXT:    nop28; MIPS32-NEXT:  # %bb.1: # %entry29; MIPS32-NEXT:    lw $2, 28($sp) # 4-byte Folded Reload30; MIPS32-NEXT:    lui $1, %hi($JTI0_0)31; MIPS32-NEXT:    sll $2, $2, 232; MIPS32-NEXT:    addu $1, $1, $233; MIPS32-NEXT:    lw $1, %lo($JTI0_0)($1)34; MIPS32-NEXT:    jr $135; MIPS32-NEXT:    nop36; MIPS32-NEXT:  $BB0_2: # %sw.bb37; MIPS32-NEXT:    lw $2, 20($sp) # 4-byte Folded Reload38; MIPS32-NEXT:    addiu $sp, $sp, 3239; MIPS32-NEXT:    jr $ra40; MIPS32-NEXT:    nop41; MIPS32-NEXT:  $BB0_3: # %sw.bb142; MIPS32-NEXT:    lw $2, 16($sp) # 4-byte Folded Reload43; MIPS32-NEXT:    addiu $sp, $sp, 3244; MIPS32-NEXT:    jr $ra45; MIPS32-NEXT:    nop46; MIPS32-NEXT:  $BB0_4: # %sw.bb247; MIPS32-NEXT:    lw $2, 12($sp) # 4-byte Folded Reload48; MIPS32-NEXT:    addiu $sp, $sp, 3249; MIPS32-NEXT:    jr $ra50; MIPS32-NEXT:    nop51; MIPS32-NEXT:  $BB0_5: # %sw.bb352; MIPS32-NEXT:    lw $2, 8($sp) # 4-byte Folded Reload53; MIPS32-NEXT:    addiu $sp, $sp, 3254; MIPS32-NEXT:    jr $ra55; MIPS32-NEXT:    nop56; MIPS32-NEXT:  $BB0_6: # %sw.default57; MIPS32-NEXT:    j $BB0_758; MIPS32-NEXT:    nop59; MIPS32-NEXT:  $BB0_7: # %sw.epilog60; MIPS32-NEXT:    lw $1, 8($sp) # 4-byte Folded Reload61; MIPS32-NEXT:    lw $2, 4($sp) # 4-byte Folded Reload62; MIPS32-NEXT:    ori $3, $zero, 863; MIPS32-NEXT:    subu $2, $2, $364; MIPS32-NEXT:    sw $2, 0($sp) # 4-byte Folded Spill65; MIPS32-NEXT:    sltu $1, $1, $266; MIPS32-NEXT:    bnez $1, $BB0_1367; MIPS32-NEXT:    nop68; MIPS32-NEXT:  # %bb.8: # %sw.epilog69; MIPS32-NEXT:    lw $2, 0($sp) # 4-byte Folded Reload70; MIPS32-NEXT:    lui $1, %hi($JTI0_1)71; MIPS32-NEXT:    sll $2, $2, 272; MIPS32-NEXT:    addu $1, $1, $273; MIPS32-NEXT:    lw $1, %lo($JTI0_1)($1)74; MIPS32-NEXT:    jr $175; MIPS32-NEXT:    nop76; MIPS32-NEXT:  $BB0_9: # %sw.bb477; MIPS32-NEXT:    lw $2, 20($sp) # 4-byte Folded Reload78; MIPS32-NEXT:    addiu $sp, $sp, 3279; MIPS32-NEXT:    jr $ra80; MIPS32-NEXT:    nop81; MIPS32-NEXT:  $BB0_10: # %sw.bb582; MIPS32-NEXT:    lw $2, 16($sp) # 4-byte Folded Reload83; MIPS32-NEXT:    addiu $sp, $sp, 3284; MIPS32-NEXT:    jr $ra85; MIPS32-NEXT:    nop86; MIPS32-NEXT:  $BB0_11: # %sw.bb687; MIPS32-NEXT:    lw $2, 12($sp) # 4-byte Folded Reload88; MIPS32-NEXT:    addiu $sp, $sp, 3289; MIPS32-NEXT:    jr $ra90; MIPS32-NEXT:    nop91; MIPS32-NEXT:  $BB0_12: # %sw.bb792; MIPS32-NEXT:    lw $2, 8($sp) # 4-byte Folded Reload93; MIPS32-NEXT:    addiu $sp, $sp, 3294; MIPS32-NEXT:    jr $ra95; MIPS32-NEXT:    nop96; MIPS32-NEXT:  $BB0_13: # %sw.default897; MIPS32-NEXT:    lw $2, 24($sp) # 4-byte Folded Reload98; MIPS32-NEXT:    addiu $sp, $sp, 3299; MIPS32-NEXT:    jr $ra100; MIPS32-NEXT:    nop101;102; MIPS32_PIC-LABEL: mod4_0_to_11:103; MIPS32_PIC:       # %bb.0: # %entry104; MIPS32_PIC-NEXT:    lui $2, %hi(_gp_disp)105; MIPS32_PIC-NEXT:    addiu $2, $2, %lo(_gp_disp)106; MIPS32_PIC-NEXT:    addiu $sp, $sp, -40107; MIPS32_PIC-NEXT:    .cfi_def_cfa_offset 40108; MIPS32_PIC-NEXT:    addu $1, $2, $25109; MIPS32_PIC-NEXT:    sw $1, 8($sp) # 4-byte Folded Spill110; MIPS32_PIC-NEXT:    sw $4, 12($sp) # 4-byte Folded Spill111; MIPS32_PIC-NEXT:    ori $1, $zero, 7112; MIPS32_PIC-NEXT:    ori $2, $zero, 3113; MIPS32_PIC-NEXT:    sw $2, 16($sp) # 4-byte Folded Spill114; MIPS32_PIC-NEXT:    ori $2, $zero, 2115; MIPS32_PIC-NEXT:    sw $2, 20($sp) # 4-byte Folded Spill116; MIPS32_PIC-NEXT:    ori $2, $zero, 1117; MIPS32_PIC-NEXT:    sw $2, 24($sp) # 4-byte Folded Spill118; MIPS32_PIC-NEXT:    ori $2, $zero, 0119; MIPS32_PIC-NEXT:    sw $2, 28($sp) # 4-byte Folded Spill120; MIPS32_PIC-NEXT:    addiu $2, $zero, 65535121; MIPS32_PIC-NEXT:    sw $2, 32($sp) # 4-byte Folded Spill122; MIPS32_PIC-NEXT:    ori $2, $zero, 0123; MIPS32_PIC-NEXT:    subu $2, $4, $2124; MIPS32_PIC-NEXT:    sw $2, 36($sp) # 4-byte Folded Spill125; MIPS32_PIC-NEXT:    sltu $1, $1, $2126; MIPS32_PIC-NEXT:    bnez $1, $BB0_6127; MIPS32_PIC-NEXT:    nop128; MIPS32_PIC-NEXT:  # %bb.1: # %entry129; MIPS32_PIC-NEXT:    lw $2, 8($sp) # 4-byte Folded Reload130; MIPS32_PIC-NEXT:    lw $3, 36($sp) # 4-byte Folded Reload131; MIPS32_PIC-NEXT:    lw $1, %got($JTI0_0)($2)132; MIPS32_PIC-NEXT:    sll $3, $3, 2133; MIPS32_PIC-NEXT:    addu $1, $1, $3134; MIPS32_PIC-NEXT:    lw $1, %lo($JTI0_0)($1)135; MIPS32_PIC-NEXT:    addu $1, $1, $2136; MIPS32_PIC-NEXT:    jr $1137; MIPS32_PIC-NEXT:    nop138; MIPS32_PIC-NEXT:  $BB0_2: # %sw.bb139; MIPS32_PIC-NEXT:    lw $2, 28($sp) # 4-byte Folded Reload140; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40141; MIPS32_PIC-NEXT:    jr $ra142; MIPS32_PIC-NEXT:    nop143; MIPS32_PIC-NEXT:  $BB0_3: # %sw.bb1144; MIPS32_PIC-NEXT:    lw $2, 24($sp) # 4-byte Folded Reload145; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40146; MIPS32_PIC-NEXT:    jr $ra147; MIPS32_PIC-NEXT:    nop148; MIPS32_PIC-NEXT:  $BB0_4: # %sw.bb2149; MIPS32_PIC-NEXT:    lw $2, 20($sp) # 4-byte Folded Reload150; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40151; MIPS32_PIC-NEXT:    jr $ra152; MIPS32_PIC-NEXT:    nop153; MIPS32_PIC-NEXT:  $BB0_5: # %sw.bb3154; MIPS32_PIC-NEXT:    lw $2, 16($sp) # 4-byte Folded Reload155; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40156; MIPS32_PIC-NEXT:    jr $ra157; MIPS32_PIC-NEXT:    nop158; MIPS32_PIC-NEXT:  $BB0_6: # %sw.default159; MIPS32_PIC-NEXT:    b $BB0_7160; MIPS32_PIC-NEXT:    nop161; MIPS32_PIC-NEXT:  $BB0_7: # %sw.epilog162; MIPS32_PIC-NEXT:    lw $1, 16($sp) # 4-byte Folded Reload163; MIPS32_PIC-NEXT:    lw $2, 12($sp) # 4-byte Folded Reload164; MIPS32_PIC-NEXT:    ori $3, $zero, 8165; MIPS32_PIC-NEXT:    subu $2, $2, $3166; MIPS32_PIC-NEXT:    sw $2, 4($sp) # 4-byte Folded Spill167; MIPS32_PIC-NEXT:    sltu $1, $1, $2168; MIPS32_PIC-NEXT:    bnez $1, $BB0_13169; MIPS32_PIC-NEXT:    nop170; MIPS32_PIC-NEXT:  # %bb.8: # %sw.epilog171; MIPS32_PIC-NEXT:    lw $2, 8($sp) # 4-byte Folded Reload172; MIPS32_PIC-NEXT:    lw $3, 4($sp) # 4-byte Folded Reload173; MIPS32_PIC-NEXT:    lw $1, %got($JTI0_1)($2)174; MIPS32_PIC-NEXT:    sll $3, $3, 2175; MIPS32_PIC-NEXT:    addu $1, $1, $3176; MIPS32_PIC-NEXT:    lw $1, %lo($JTI0_1)($1)177; MIPS32_PIC-NEXT:    addu $1, $1, $2178; MIPS32_PIC-NEXT:    jr $1179; MIPS32_PIC-NEXT:    nop180; MIPS32_PIC-NEXT:  $BB0_9: # %sw.bb4181; MIPS32_PIC-NEXT:    lw $2, 28($sp) # 4-byte Folded Reload182; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40183; MIPS32_PIC-NEXT:    jr $ra184; MIPS32_PIC-NEXT:    nop185; MIPS32_PIC-NEXT:  $BB0_10: # %sw.bb5186; MIPS32_PIC-NEXT:    lw $2, 24($sp) # 4-byte Folded Reload187; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40188; MIPS32_PIC-NEXT:    jr $ra189; MIPS32_PIC-NEXT:    nop190; MIPS32_PIC-NEXT:  $BB0_11: # %sw.bb6191; MIPS32_PIC-NEXT:    lw $2, 20($sp) # 4-byte Folded Reload192; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40193; MIPS32_PIC-NEXT:    jr $ra194; MIPS32_PIC-NEXT:    nop195; MIPS32_PIC-NEXT:  $BB0_12: # %sw.bb7196; MIPS32_PIC-NEXT:    lw $2, 16($sp) # 4-byte Folded Reload197; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40198; MIPS32_PIC-NEXT:    jr $ra199; MIPS32_PIC-NEXT:    nop200; MIPS32_PIC-NEXT:  $BB0_13: # %sw.default8201; MIPS32_PIC-NEXT:    lw $2, 32($sp) # 4-byte Folded Reload202; MIPS32_PIC-NEXT:    addiu $sp, $sp, 40203; MIPS32_PIC-NEXT:    jr $ra204; MIPS32_PIC-NEXT:    nop205 206 207entry:208  switch i32 %a, label %sw.default [209    i32 0, label %sw.bb210    i32 4, label %sw.bb211    i32 1, label %sw.bb1212    i32 5, label %sw.bb1213    i32 2, label %sw.bb2214    i32 6, label %sw.bb2215    i32 3, label %sw.bb3216    i32 7, label %sw.bb3217  ]218 219sw.bb:                                            ; preds = %entry, %entry220  ret i32 0221 222sw.bb1:                                           ; preds = %entry, %entry223  ret i32 1224 225sw.bb2:                                           ; preds = %entry, %entry226  ret i32 2227 228sw.bb3:                                           ; preds = %entry, %entry229  ret i32 3230 231sw.default:                                       ; preds = %entry232  br label %sw.epilog233 234sw.epilog:                                        ; preds = %sw.default235  switch i32 %a, label %sw.default8 [236    i32 8, label %sw.bb4237    i32 9, label %sw.bb5238    i32 10, label %sw.bb6239    i32 11, label %sw.bb7240  ]241 242sw.bb4:                                           ; preds = %sw.epilog243  ret i32 0244 245sw.bb5:                                           ; preds = %sw.epilog246  ret i32 1247 248sw.bb6:                                           ; preds = %sw.epilog249  ret i32 2250 251sw.bb7:                                           ; preds = %sw.epilog252  ret i32 3253 254sw.default8:                                      ; preds = %sw.epilog255  ret i32 -1256 257}258