67 lines · plain
1; RUN: llc -O0 -mtriple=mips-img-linux-gnu -mcpu=mips32r6 -relocation-model=pic < %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-PIC2; RUN: llc -O0 -mtriple=mips-img-linux-gnu -mcpu=mips32r6 -relocation-model=static < %s -o - | FileCheck %s --check-prefixes=CHECK-STATIC3 4declare i32 @boo(...)5declare i32 @foo(...)6 7define i32 @main(i32 signext %argc, ptr %argv) {8; CHECK: main:9; CHECK: # %bb.1:10; CHECK-PIC: addiu11; CHECK-PIC: sw12; CHECK-PIC: lui13; CHECK-PIC: addiu14; CHECK-PIC: balc15; CHECK-PIC: addu16; CHECK-PIC: lw17; CHECK-PIC: addiu18; CHECK-PIC: jrc19; CHECK-PIC: bc20; CHECK-PIC: bnezc21; CHECK-PIC: nop22; CHECK-PIC: bc23 24; CHECK-STATIC: bc25; CHECK-STATIC: j26; CHECK-STATIC: bnezc27; CHECK-STATIC: nop28; CHECK-STATIC: j29entry:30 %retval = alloca i32, align 431 %argc.addr = alloca i32, align 432 %argv.addr = alloca ptr, align 433 store i32 0, ptr %retval, align 434 store i32 %argc, ptr %argc.addr, align 435 store ptr %argv, ptr %argv.addr, align 436 %0 = load i32, ptr %argc.addr, align 437 %cmp = icmp sgt i32 %0, 138 br i1 %cmp, label %if.then, label %if.end439 40if.then:41 call void asm sideeffect ".space 10", "~{$1}"()42 %1 = load i32, ptr %argc.addr, align 443 %cmp1 = icmp sgt i32 %1, 344 br i1 %cmp1, label %if.then2, label %if.end45 46if.then2:47 call void asm sideeffect ".space 10", "~{$1}"()48 %call = call i32 @boo()49 store i32 %call, ptr %retval, align 450 br label %return51 52if.end:53 call void asm sideeffect ".space 4194228", "~{$1}"()54 %call3 = call i32 @foo()55 store i32 %call3, ptr %retval, align 456 br label %return57 58if.end4:59 store i32 0, ptr %retval, align 460 br label %return61 62return:63 %2 = load i32, ptr %retval, align 464 ret i32 %265 66}67