brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · c12deaf Raw
134 lines · plain
1; RUN: llc -mtriple=mips-elf < %s | FileCheck %s -check-prefix=O322; RUN: llc -mtriple=mips64-elf -target-abi=n32 < %s | FileCheck %s -check-prefix=N323; RUN: llc -mtriple=mips64-elf < %s | FileCheck %s -check-prefix=N644; RUN: llc -mtriple=mipsel-windows-gnu < %s | FileCheck %s -check-prefix=MIPSEL5 6; We only use the '$' prefix on O32. The others use the ELF convention.7; O32: $JTI0_08; N32: .LJTI0_09; N64: .LJTI0_010 11; Check basic block labels while we're at it.12; O32: $BB0_2:13; N32: .LBB0_2:14; N64: .LBB0_2:15 16; MIPSEL-LABEL: _Z3fooi:17; MIPSEL:       # %bb.0: # %entry18; MIPSEL-NEXT:    addiu $sp, $sp, -1619; MIPSEL-NEXT:    sltiu	$1, $4, 720; MIPSEL-NEXT:    beqz $1, .LBB0_621; MIPSEL-NEXT:    sw $4, 4($sp)22; MIPSEL-NEXT:  # %bb.1: # %entry23; MIPSEL-NEXT:    sll $1, $4, 224; MIPSEL-NEXT:    lui $2, %hi($JTI0_0)25; MIPSEL-NEXT:    addu $1, $1, $226; MIPSEL-NEXT:    lw $1, %lo($JTI0_0)($1)27; MIPSEL-NEXT:    jr $128; MIPSEL-NEXT:    nop29; MIPSEL-NEXT:  .LBB0_2: # %sw.bb30; MIPSEL-NEXT:    lui $1, %hi($.str)31; MIPSEL-NEXT:    addiu	$1, $1, %lo($.str)32; MIPSEL-NEXT:    j .LBB0_1033; MIPSEL-NEXT:    sw $1, 8($sp)34; MIPSEL-NEXT:  .LBB0_3: # %sw.bb435; MIPSEL-NEXT:    lui $1, %hi($.str.4)36; MIPSEL-NEXT:    addiu	$1, $1, %lo($.str.4)37; MIPSEL-NEXT:    j .LBB0_1038; MIPSEL-NEXT:    sw $1, 8($sp)39; MIPSEL-NEXT:  .LBB0_4: # %sw.bb240; MIPSEL-NEXT:    lui $1, %hi($.str.2)41; MIPSEL-NEXT:    addiu	$1, $1, %lo($.str.2)42; MIPSEL-NEXT:    j .LBB0_1043; MIPSEL-NEXT:    sw $1, 8($sp)44; MIPSEL-NEXT:  .LBB0_5: # %sw.bb345; MIPSEL-NEXT:    lui $1, %hi($.str.3)46; MIPSEL-NEXT:    addiu	$1, $1, %lo($.str.3)47; MIPSEL-NEXT:    j .LBB0_1048; MIPSEL-NEXT:    sw $1, 8($sp)49; MIPSEL-NEXT:  .LBB0_6: # %sw.epilog50; MIPSEL-NEXT:    lui $1, %hi($.str.7)51; MIPSEL-NEXT:    addiu	$1, $1, %lo($.str.7)52; MIPSEL-NEXT:    j .LBB0_1053; MIPSEL-NEXT:    sw $1, 8($sp)54; MIPSEL-NEXT:  .LBB0_7: # %sw.bb155; MIPSEL-NEXT:    lui $1, %hi($.str.1)56; MIPSEL-NEXT:    addiu	$1, $1, %lo($.str.1)57; MIPSEL-NEXT:    j .LBB0_1058; MIPSEL-NEXT:    sw $1, 8($sp)59; MIPSEL-NEXT:  .LBB0_8: # %sw.bb560; MIPSEL-NEXT:    lui $1, %hi($.str.5)61; MIPSEL-NEXT:    addiu	$1, $1, %lo($.str.5)62; MIPSEL-NEXT:    j .LBB0_1063; MIPSEL-NEXT:    sw $1, 8($sp)64; MIPSEL-NEXT:  .LBB0_9: # %sw.bb665; MIPSEL-NEXT:    lui $1, %hi($.str.6)66; MIPSEL-NEXT:    addiu	$1, $1, %lo($.str.6)67; MIPSEL-NEXT:    sw $1, 8($sp)68; MIPSEL-NEXT:  .LBB0_10: # %return69; MIPSEL-NEXT:    lw $2, 8($sp)70; MIPSEL-NEXT:    jr $ra71; MIPSEL-NEXT:    addiu	$sp, $sp, 1672 73@.str = private unnamed_addr constant [2 x i8] c"A\00", align 174@.str.1 = private unnamed_addr constant [2 x i8] c"B\00", align 175@.str.2 = private unnamed_addr constant [2 x i8] c"C\00", align 176@.str.3 = private unnamed_addr constant [2 x i8] c"D\00", align 177@.str.4 = private unnamed_addr constant [2 x i8] c"E\00", align 178@.str.5 = private unnamed_addr constant [2 x i8] c"F\00", align 179@.str.6 = private unnamed_addr constant [2 x i8] c"G\00", align 180@.str.7 = private unnamed_addr constant [1 x i8] zeroinitializer, align 181 82define ptr @_Z3fooi(i32 signext %Letter) {83entry:84  %retval = alloca ptr, align 885  %Letter.addr = alloca i32, align 486  store i32 %Letter, ptr %Letter.addr, align 487  %0 = load i32, ptr %Letter.addr, align 488  switch i32 %0, label %sw.epilog [89    i32 0, label %sw.bb90    i32 1, label %sw.bb191    i32 2, label %sw.bb292    i32 3, label %sw.bb393    i32 4, label %sw.bb494    i32 5, label %sw.bb595    i32 6, label %sw.bb696  ]97 98sw.bb:99  store ptr @.str, ptr %retval, align 8100  br label %return101 102sw.bb1:103  store ptr @.str.1, ptr %retval, align 8104  br label %return105 106sw.bb2:107  store ptr @.str.2, ptr %retval, align 8108  br label %return109 110sw.bb3:111  store ptr @.str.3, ptr %retval, align 8112  br label %return113 114sw.bb4:115  store ptr @.str.4, ptr %retval, align 8116  br label %return117 118sw.bb5:119  store ptr @.str.5, ptr %retval, align 8120  br label %return121 122sw.bb6:123  store ptr @.str.6, ptr %retval, align 8124  br label %return125 126sw.epilog:127  store ptr @.str.7, ptr %retval, align 8128  br label %return129 130return:131  %1 = load ptr, ptr %retval, align 8132  ret ptr %1133}134