brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 44cdfe9 Raw
159 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 -mattr=-32s,+d < %s | FileCheck %s --check-prefix=LA32R3; RUN: llc --mtriple=loongarch32 -mattr=+32s,+d < %s | FileCheck %s --check-prefix=LA32S4; RUN: llc --mtriple=loongarch64 -mattr=+d < %s | FileCheck %s --check-prefix=LA645 6declare void @bar()7 8define void @bnez_i32(i32 signext %0) nounwind {9; LA32R-LABEL: bnez_i32:10; LA32R:       # %bb.0: # %start11; LA32R-NEXT:    beq $a0, $zero, .LBB0_212; LA32R-NEXT:  # %bb.1: # %f13; LA32R-NEXT:    ret14; LA32R-NEXT:  .LBB0_2: # %t15; LA32R-NEXT:    b bar16;17; LA32S-LABEL: bnez_i32:18; LA32S:       # %bb.0: # %start19; LA32S-NEXT:    beqz $a0, .LBB0_220; LA32S-NEXT:  # %bb.1: # %f21; LA32S-NEXT:    ret22; LA32S-NEXT:  .LBB0_2: # %t23; LA32S-NEXT:    b bar24;25; LA64-LABEL: bnez_i32:26; LA64:       # %bb.0: # %start27; LA64-NEXT:    beqz $a0, .LBB0_228; LA64-NEXT:  # %bb.1: # %f29; LA64-NEXT:    ret30; LA64-NEXT:  .LBB0_2: # %t31; LA64-NEXT:    pcaddu18i $t8, %call36(bar)32; LA64-NEXT:    jr $t833start:34  %1 = icmp eq i32 %0, 035  br i1 %1, label %t, label %f36 37t:38  tail call void @bar()39  br label %f40 41f:42  ret void43}44 45define void @beqz_i32(i32 signext %0) nounwind {46; LA32R-LABEL: beqz_i32:47; LA32R:       # %bb.0: # %start48; LA32R-NEXT:    beq $a0, $zero, .LBB1_249; LA32R-NEXT:  # %bb.1: # %t50; LA32R-NEXT:    b bar51; LA32R-NEXT:  .LBB1_2: # %f52; LA32R-NEXT:    ret53;54; LA32S-LABEL: beqz_i32:55; LA32S:       # %bb.0: # %start56; LA32S-NEXT:    beqz $a0, .LBB1_257; LA32S-NEXT:  # %bb.1: # %t58; LA32S-NEXT:    b bar59; LA32S-NEXT:  .LBB1_2: # %f60; LA32S-NEXT:    ret61;62; LA64-LABEL: beqz_i32:63; LA64:       # %bb.0: # %start64; LA64-NEXT:    beqz $a0, .LBB1_265; LA64-NEXT:  # %bb.1: # %t66; LA64-NEXT:    pcaddu18i $t8, %call36(bar)67; LA64-NEXT:    jr $t868; LA64-NEXT:  .LBB1_2: # %f69; LA64-NEXT:    ret70start:71  %1 = icmp ne i32 %0, 072  br i1 %1, label %t, label %f73 74t:75  tail call void @bar()76  br label %f77 78f:79  ret void80}81 82define void @bnez_i64(i64 %0) nounwind {83; LA32R-LABEL: bnez_i64:84; LA32R:       # %bb.0: # %start85; LA32R-NEXT:    or $a0, $a0, $a186; LA32R-NEXT:    beq $a0, $zero, .LBB2_287; LA32R-NEXT:  # %bb.1: # %f88; LA32R-NEXT:    ret89; LA32R-NEXT:  .LBB2_2: # %t90; LA32R-NEXT:    b bar91;92; LA32S-LABEL: bnez_i64:93; LA32S:       # %bb.0: # %start94; LA32S-NEXT:    or $a0, $a0, $a195; LA32S-NEXT:    beqz $a0, .LBB2_296; LA32S-NEXT:  # %bb.1: # %f97; LA32S-NEXT:    ret98; LA32S-NEXT:  .LBB2_2: # %t99; LA32S-NEXT:    b bar100;101; LA64-LABEL: bnez_i64:102; LA64:       # %bb.0: # %start103; LA64-NEXT:    beqz $a0, .LBB2_2104; LA64-NEXT:  # %bb.1: # %f105; LA64-NEXT:    ret106; LA64-NEXT:  .LBB2_2: # %t107; LA64-NEXT:    pcaddu18i $t8, %call36(bar)108; LA64-NEXT:    jr $t8109start:110  %1 = icmp eq i64 %0, 0111  br i1 %1, label %t, label %f112 113t:114  tail call void @bar()115  br label %f116 117f:118  ret void119}120 121define void @beqz_i64(i64 %0) nounwind {122; LA32R-LABEL: beqz_i64:123; LA32R:       # %bb.0: # %start124; LA32R-NEXT:    or $a0, $a0, $a1125; LA32R-NEXT:    beq $a0, $zero, .LBB3_2126; LA32R-NEXT:  # %bb.1: # %t127; LA32R-NEXT:    b bar128; LA32R-NEXT:  .LBB3_2: # %f129; LA32R-NEXT:    ret130;131; LA32S-LABEL: beqz_i64:132; LA32S:       # %bb.0: # %start133; LA32S-NEXT:    or $a0, $a0, $a1134; LA32S-NEXT:    beqz $a0, .LBB3_2135; LA32S-NEXT:  # %bb.1: # %t136; LA32S-NEXT:    b bar137; LA32S-NEXT:  .LBB3_2: # %f138; LA32S-NEXT:    ret139;140; LA64-LABEL: beqz_i64:141; LA64:       # %bb.0: # %start142; LA64-NEXT:    beqz $a0, .LBB3_2143; LA64-NEXT:  # %bb.1: # %t144; LA64-NEXT:    pcaddu18i $t8, %call36(bar)145; LA64-NEXT:    jr $t8146; LA64-NEXT:  .LBB3_2: # %f147; LA64-NEXT:    ret148start:149  %1 = icmp ne i64 %0, 0150  br i1 %1, label %t, label %f151 152t:153  tail call void @bar()154  br label %f155 156f:157  ret void158}159