brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 313b51e Raw
108 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -O3 -mtriple=mipsel-elf -mcpu=mips32r6 -mattr=+fp64,+msa %s -o - | FileCheck %s3 4; Test that checks if spill for ldi can be avoided and instruction will be5; rematerialized.6 7declare dso_local void @foo()8 9define dso_local void @test_ldi_b() {10; CHECK-LABEL: test_ldi_b:11; CHECK:       # %bb.0: # %entry12; CHECK-NEXT:    addiu $sp, $sp, -2413; CHECK-NEXT:    .cfi_def_cfa_offset 2414; CHECK-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill15; CHECK-NEXT:    .cfi_offset 31, -416; CHECK-NEXT:    ldi.b $w0, 117; CHECK-NEXT:    #APP18; CHECK-NEXT:    #NO_APP19; CHECK-NEXT:    jal foo20; CHECK-NEXT:    nop21; CHECK-NEXT:    ldi.b $w0, 122; CHECK-NEXT:    #APP23; CHECK-NEXT:    #NO_APP24; CHECK-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload25; CHECK-NEXT:    jr $ra26; CHECK-NEXT:    addiu $sp, $sp, 2427entry:28  tail call void asm sideeffect "", "f,~{memory},~{$1}"(<16 x i8> <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>)29  tail call void @foo()30  tail call void asm sideeffect "", "f,~{memory},~{$1}"(<16 x i8> <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>)31  ret void32}33 34define dso_local void @test_ldi_h() {35; CHECK-LABEL: test_ldi_h:36; CHECK:       # %bb.0: # %entry37; CHECK-NEXT:    addiu $sp, $sp, -2438; CHECK-NEXT:    .cfi_def_cfa_offset 2439; CHECK-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill40; CHECK-NEXT:    .cfi_offset 31, -441; CHECK-NEXT:    ldi.h $w0, 242; CHECK-NEXT:    #APP43; CHECK-NEXT:    #NO_APP44; CHECK-NEXT:    jal foo45; CHECK-NEXT:    nop46; CHECK-NEXT:    ldi.h $w0, 247; CHECK-NEXT:    #APP48; CHECK-NEXT:    #NO_APP49; CHECK-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload50; CHECK-NEXT:    jr $ra51; CHECK-NEXT:    addiu $sp, $sp, 2452entry:53  tail call void asm sideeffect "", "f,~{memory},~{$1}"(<8 x i16> <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>)54  tail call void @foo()55  tail call void asm sideeffect "", "f,~{memory},~{$1}"(<8 x i16> <i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2, i16 2>)56  ret void57}58 59define dso_local void @test_ldi_w() {60; CHECK-LABEL: test_ldi_w:61; CHECK:       # %bb.0: # %entry62; CHECK-NEXT:    addiu $sp, $sp, -2463; CHECK-NEXT:    .cfi_def_cfa_offset 2464; CHECK-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill65; CHECK-NEXT:    .cfi_offset 31, -466; CHECK-NEXT:    ldi.w $w0, 367; CHECK-NEXT:    #APP68; CHECK-NEXT:    #NO_APP69; CHECK-NEXT:    jal foo70; CHECK-NEXT:    nop71; CHECK-NEXT:    ldi.w $w0, 372; CHECK-NEXT:    #APP73; CHECK-NEXT:    #NO_APP74; CHECK-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload75; CHECK-NEXT:    jr $ra76; CHECK-NEXT:    addiu $sp, $sp, 2477entry:78  tail call void asm sideeffect "", "f,~{memory},~{$1}"(<4 x i32> <i32 3, i32 3, i32 3, i32 3>)79  tail call void @foo()80  tail call void asm sideeffect "", "f,~{memory},~{$1}"(<4 x i32> <i32 3, i32 3, i32 3, i32 3>)81  ret void82}83 84define dso_local void @test_ldi_d() {85; CHECK-LABEL: test_ldi_d:86; CHECK:       # %bb.0: # %entry87; CHECK-NEXT:    addiu $sp, $sp, -2488; CHECK-NEXT:    .cfi_def_cfa_offset 2489; CHECK-NEXT:    sw $ra, 20($sp) # 4-byte Folded Spill90; CHECK-NEXT:    .cfi_offset 31, -491; CHECK-NEXT:    ldi.d $w0, 492; CHECK-NEXT:    #APP93; CHECK-NEXT:    #NO_APP94; CHECK-NEXT:    jal foo95; CHECK-NEXT:    nop96; CHECK-NEXT:    ldi.d $w0, 497; CHECK-NEXT:    #APP98; CHECK-NEXT:    #NO_APP99; CHECK-NEXT:    lw $ra, 20($sp) # 4-byte Folded Reload100; CHECK-NEXT:    jr $ra101; CHECK-NEXT:    addiu $sp, $sp, 24102entry:103  tail call void asm sideeffect "", "f,~{memory},~{$1}"(<2 x i64> <i64 4, i64 4>)104  tail call void @foo()105  tail call void asm sideeffect "", "f,~{memory},~{$1}"(<2 x i64> <i64 4, i64 4>)106  ret void107}108