brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · 26cea57 Raw
143 lines · plain
1; RUN: llc -mtriple=mips-unknown-linux-gnu < %s | FileCheck --check-prefix=CHECK --check-prefix=CHECK-MIPS32 %s2; RUN: llc -mtriple=mipsel-unknown-linux-gnu < %s | FileCheck --check-prefix=CHECK --check-prefix=CHECK-MIPS32 %s3; RUN: llc -mtriple=mips64-unknown-linux-gnu < %s | FileCheck --check-prefix=CHECK --check-prefix=CHECK-MIPS64 %s4; RUN: llc -mtriple=mips64el-unknown-linux-gnu < %s | FileCheck --check-prefix=CHECK --check-prefix=CHECK-MIPS64 %s5 6define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" {7; CHECK:       .p2align 28; CHECK-MIPS64-LABEL: .Lxray_sled_0:9; CHECK-MIPS32-LABEL: $xray_sled_0:10; CHECK-NEXT:  b [[TMP:(\.L|\$)tmp[0-9]+]]11; CHECK-NEXT:  nop12; CHECK-NEXT:  nop13; CHECK-NEXT:  nop14; CHECK-NEXT:  nop15; CHECK-NEXT:  nop16; CHECK-NEXT:  nop17; CHECK-NEXT:  nop18; CHECK-NEXT:  nop19; CHECK-NEXT:  nop20; CHECK-NEXT:  nop21; CHECK-NEXT:  nop22; CHECK-MIPS64:  nop23; CHECK-MIPS64:  nop24; CHECK-MIPS64:  nop25; CHECK-MIPS64:  nop26; CHECK-NEXT:  [[TMP]]:27; CHECK-MIPS32-NEXT:  addiu $25, $25, 5228  ret i32 029; CHECK:       .p2align 230; CHECK-MIPS64-LABEL: .Lxray_sled_1:31; CHECK-MIPS32-LABEL: $xray_sled_1:32; CHECK-NEXT:  b [[TMP:(\.L|\$)tmp[0-9]+]]33; CHECK-NEXT:  nop34; CHECK-NEXT:  nop35; CHECK-NEXT:  nop36; CHECK-NEXT:  nop37; CHECK-NEXT:  nop38; CHECK-NEXT:  nop39; CHECK-NEXT:  nop40; CHECK-NEXT:  nop41; CHECK-NEXT:  nop42; CHECK-NEXT:  nop43; CHECK-NEXT:  nop44; CHECK-MIPS64:  nop45; CHECK-MIPS64:  nop46; CHECK-MIPS64:  nop47; CHECK-MIPS64:  nop48; CHECK:       [[TMP]]:49; CHECK-MIPS32:  addiu $25, $25, 5250}51; CHECK:             .section xray_instr_map,"ao",@progbits,foo52; CHECK-MIPS64:      [[TMP:.Ltmp[0-9]+]]:53; CHECK-MIPS64-NEXT:   .8byte  .Lxray_sled_0-[[TMP]]54; CHECK-MIPS64-NEXT:   .8byte  .Lfunc_begin0-([[TMP]]+8)55; CHECK-MIPS32:      [[TMP:\$tmp[0-9]+]]:56; CHECK-MIPS32-NEXT:   .4byte  $xray_sled_0-[[TMP]]57; CHECK-MIPS32-NEXT:   .4byte  $func_begin0-([[TMP]]+4)58 59; We test multiple returns in a single function to make sure we're getting all60; of them with XRay instrumentation.61define i32 @bar(i32 %i) nounwind noinline uwtable "function-instrument"="xray-always" {62; CHECK:       .p2align 263; CHECK-MIPS64-LABEL: .Lxray_sled_2:64; CHECK-MIPS32-LABEL: $xray_sled_2:65; CHECK-NEXT:  b [[TMP:(\.L|\$)tmp[0-9]+]]66; CHECK-NEXT:  nop67; CHECK-NEXT:  nop68; CHECK-NEXT:  nop69; CHECK-NEXT:  nop70; CHECK-NEXT:  nop71; CHECK-NEXT:  nop72; CHECK-NEXT:  nop73; CHECK-NEXT:  nop74; CHECK-NEXT:  nop75; CHECK-NEXT:  nop76; CHECK-NEXT:  nop77; CHECK-MIPS64:  nop78; CHECK-MIPS64:  nop79; CHECK-MIPS64:  nop80; CHECK-MIPS64:  nop81; CHECK:       [[TMP]]:82; CHECK-MIPS32:  addiu $25, $25, 5283Test:84  %cond = icmp eq i32 %i, 085  br i1 %cond, label %IsEqual, label %NotEqual86IsEqual:87  ret i32 088; CHECK:       .p2align 289; CHECK-MIPS64-LABEL: .Lxray_sled_3:90; CHECK-MIPS32-LABEL: $xray_sled_3:91; CHECK-NEXT:  b [[TMP:(\.L|\$)tmp[0-9]+]]92; CHECK-NEXT:  nop93; CHECK-NEXT:  nop94; CHECK-NEXT:  nop95; CHECK-NEXT:  nop96; CHECK-NEXT:  nop97; CHECK-NEXT:  nop98; CHECK-NEXT:  nop99; CHECK-NEXT:  nop100; CHECK-NEXT:  nop101; CHECK-NEXT:  nop102; CHECK-NEXT:  nop103; CHECK-MIPS64:  nop104; CHECK-MIPS64:  nop105; CHECK-MIPS64:  nop106; CHECK-MIPS64:  nop107; CHECK-NEXT:    [[TMP]]:108; CHECK-MIPS32:  addiu $25, $25, 52 109NotEqual:110  ret i32 1111; CHECK:       .p2align 2112; CHECK-MIPS64-LABEL: .Lxray_sled_4:113; CHECK-MIPS32-LABEL: $xray_sled_4:114; CHECK-NEXT:  b [[TMP:(\.L|\$)tmp[0-9]+]]115; CHECK-NEXT:  nop116; CHECK-NEXT:  nop117; CHECK-NEXT:  nop118; CHECK-NEXT:  nop119; CHECK-NEXT:  nop120; CHECK-NEXT:  nop121; CHECK-NEXT:  nop122; CHECK-NEXT:  nop123; CHECK-NEXT:  nop124; CHECK-NEXT:  nop125; CHECK-NEXT:  nop126; CHECK-MIPS64:  nop127; CHECK-MIPS64:  nop128; CHECK-MIPS64:  nop129; CHECK-MIPS64:  nop130; CHECK-NEXT:    [[TMP]]:131; CHECK-MIPS32:  addiu $25, $25, 52132}133; CHECK: .section xray_instr_map,"ao",@progbits,bar134; CHECK-MIPS64: .8byte  .Lxray_sled_2135; CHECK-MIPS64: .8byte  .Lxray_sled_3136; CHECK-MIPS64: .8byte  .Lxray_sled_4137; CHECK-MIPS32:      [[TMP:\$tmp[0-9]+]]:138; CHECK-MIPS32-NEXT: .4byte	$xray_sled_2-[[TMP]]139; CHECK-MIPS32:      [[TMP:\$tmp[0-9]+]]:140; CHECK-MIPS32-NEXT: .4byte	$xray_sled_3-[[TMP]]141; CHECK-MIPS32:      [[TMP:\$tmp[0-9]+]]:142; CHECK-MIPS32-NEXT: .4byte	$xray_sled_4-[[TMP]]143