189 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 -mattr=-32s,+d --verify-machineinstrs < %s | FileCheck %s --check-prefix=LA32R3; RUN: llc --mtriple=loongarch32 -mattr=+32s,+d --verify-machineinstrs < %s | FileCheck %s --check-prefix=LA32S4; RUN: llc --mtriple=loongarch64 -mattr=+d --verify-machineinstrs < %s | FileCheck %s --check-prefix=LA645 6define i32 @relax_b18(i32 signext %a, i32 signext %b) {7; LA32R-LABEL: relax_b18:8; LA32R: # %bb.0:9; LA32R-NEXT: beq $a0, $a1, .LBB0_110; LA32R-NEXT: b .LBB0_211; LA32R-NEXT: .LBB0_1: # %iftrue12; LA32R-NEXT: ori $a0, $zero, 113; LA32R-NEXT: #APP14; LA32R-NEXT: .space 104857615; LA32R-NEXT: #NO_APP16; LA32R-NEXT: ret17; LA32R-NEXT: .LBB0_2: # %iffalse18; LA32R-NEXT: move $a0, $zero19; LA32R-NEXT: ret20;21; LA32S-LABEL: relax_b18:22; LA32S: # %bb.0:23; LA32S-NEXT: beq $a0, $a1, .LBB0_124; LA32S-NEXT: b .LBB0_225; LA32S-NEXT: .LBB0_1: # %iftrue26; LA32S-NEXT: ori $a0, $zero, 127; LA32S-NEXT: #APP28; LA32S-NEXT: .space 104857629; LA32S-NEXT: #NO_APP30; LA32S-NEXT: ret31; LA32S-NEXT: .LBB0_2: # %iffalse32; LA32S-NEXT: move $a0, $zero33; LA32S-NEXT: ret34;35; LA64-LABEL: relax_b18:36; LA64: # %bb.0:37; LA64-NEXT: beq $a0, $a1, .LBB0_138; LA64-NEXT: b .LBB0_239; LA64-NEXT: .LBB0_1: # %iftrue40; LA64-NEXT: ori $a0, $zero, 141; LA64-NEXT: #APP42; LA64-NEXT: .space 104857643; LA64-NEXT: #NO_APP44; LA64-NEXT: ret45; LA64-NEXT: .LBB0_2: # %iffalse46; LA64-NEXT: move $a0, $zero47; LA64-NEXT: ret48 %cond = icmp eq i32 %a, %b49 br i1 %cond, label %iftrue, label %iffalse50 51iftrue:52 call void asm sideeffect ".space 1048576", ""()53 ret i32 154 55iffalse:56 ret i32 057}58 59define i32 @relax_b23(i1 %a) {60; LA32R-LABEL: relax_b23:61; LA32R: # %bb.0:62; LA32R-NEXT: andi $a0, $a0, 163; LA32R-NEXT: bne $a0, $zero, .LBB1_164; LA32R-NEXT: b .LBB1_265; LA32R-NEXT: .LBB1_1: # %iftrue66; LA32R-NEXT: ori $a0, $zero, 167; LA32R-NEXT: #APP68; LA32R-NEXT: .space 1677721669; LA32R-NEXT: #NO_APP70; LA32R-NEXT: ret71; LA32R-NEXT: .LBB1_2: # %iffalse72; LA32R-NEXT: move $a0, $zero73; LA32R-NEXT: ret74;75; LA32S-LABEL: relax_b23:76; LA32S: # %bb.0:77; LA32S-NEXT: andi $a0, $a0, 178; LA32S-NEXT: bnez $a0, .LBB1_179; LA32S-NEXT: b .LBB1_280; LA32S-NEXT: .LBB1_1: # %iftrue81; LA32S-NEXT: ori $a0, $zero, 182; LA32S-NEXT: #APP83; LA32S-NEXT: .space 1677721684; LA32S-NEXT: #NO_APP85; LA32S-NEXT: ret86; LA32S-NEXT: .LBB1_2: # %iffalse87; LA32S-NEXT: move $a0, $zero88; LA32S-NEXT: ret89;90; LA64-LABEL: relax_b23:91; LA64: # %bb.0:92; LA64-NEXT: andi $a0, $a0, 193; LA64-NEXT: bnez $a0, .LBB1_194; LA64-NEXT: b .LBB1_295; LA64-NEXT: .LBB1_1: # %iftrue96; LA64-NEXT: ori $a0, $zero, 197; LA64-NEXT: #APP98; LA64-NEXT: .space 1677721699; LA64-NEXT: #NO_APP100; LA64-NEXT: ret101; LA64-NEXT: .LBB1_2: # %iffalse102; LA64-NEXT: move $a0, $zero103; LA64-NEXT: ret104 br i1 %a, label %iftrue, label %iffalse105 106iftrue:107 call void asm sideeffect ".space 16777216", ""()108 ret i32 1109 110iffalse:111 ret i32 0112}113 114define i32 @relax_b28(i1 %a) {115; LA32R-LABEL: relax_b28:116; LA32R: # %bb.0:117; LA32R-NEXT: addi.w $sp, $sp, -16118; LA32R-NEXT: .cfi_def_cfa_offset 16119; LA32R-NEXT: andi $a0, $a0, 1120; LA32R-NEXT: bne $a0, $zero, .LBB2_1121; LA32R-NEXT: # %bb.3:122; LA32R-NEXT: pcalau12i $a0, %pc_hi20(.LBB2_2)123; LA32R-NEXT: addi.w $a0, $a0, %pc_lo12(.LBB2_2)124; LA32R-NEXT: jr $a0125; LA32R-NEXT: .LBB2_1: # %iftrue126; LA32R-NEXT: ori $a0, $zero, 1127; LA32R-NEXT: #APP128; LA32R-NEXT: .space 536870912129; LA32R-NEXT: #NO_APP130; LA32R-NEXT: addi.w $sp, $sp, 16131; LA32R-NEXT: ret132; LA32R-NEXT: .LBB2_2: # %iffalse133; LA32R-NEXT: move $a0, $zero134; LA32R-NEXT: addi.w $sp, $sp, 16135; LA32R-NEXT: ret136;137; LA32S-LABEL: relax_b28:138; LA32S: # %bb.0:139; LA32S-NEXT: addi.w $sp, $sp, -16140; LA32S-NEXT: .cfi_def_cfa_offset 16141; LA32S-NEXT: andi $a0, $a0, 1142; LA32S-NEXT: bnez $a0, .LBB2_1143; LA32S-NEXT: # %bb.3:144; LA32S-NEXT: pcalau12i $a0, %pc_hi20(.LBB2_2)145; LA32S-NEXT: addi.w $a0, $a0, %pc_lo12(.LBB2_2)146; LA32S-NEXT: jr $a0147; LA32S-NEXT: .LBB2_1: # %iftrue148; LA32S-NEXT: ori $a0, $zero, 1149; LA32S-NEXT: #APP150; LA32S-NEXT: .space 536870912151; LA32S-NEXT: #NO_APP152; LA32S-NEXT: addi.w $sp, $sp, 16153; LA32S-NEXT: ret154; LA32S-NEXT: .LBB2_2: # %iffalse155; LA32S-NEXT: move $a0, $zero156; LA32S-NEXT: addi.w $sp, $sp, 16157; LA32S-NEXT: ret158;159; LA64-LABEL: relax_b28:160; LA64: # %bb.0:161; LA64-NEXT: addi.d $sp, $sp, -16162; LA64-NEXT: .cfi_def_cfa_offset 16163; LA64-NEXT: andi $a0, $a0, 1164; LA64-NEXT: bnez $a0, .LBB2_1165; LA64-NEXT: # %bb.3:166; LA64-NEXT: pcalau12i $a0, %pc_hi20(.LBB2_2)167; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.LBB2_2)168; LA64-NEXT: jr $a0169; LA64-NEXT: .LBB2_1: # %iftrue170; LA64-NEXT: ori $a0, $zero, 1171; LA64-NEXT: #APP172; LA64-NEXT: .space 536870912173; LA64-NEXT: #NO_APP174; LA64-NEXT: addi.d $sp, $sp, 16175; LA64-NEXT: ret176; LA64-NEXT: .LBB2_2: # %iffalse177; LA64-NEXT: move $a0, $zero178; LA64-NEXT: addi.d $sp, $sp, 16179; LA64-NEXT: ret180 br i1 %a, label %iftrue, label %iffalse181 182iftrue:183 call void asm sideeffect ".space 536870912", ""()184 ret i32 1185 186iffalse:187 ret i32 0188}189