247 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=xtensa -verify-machineinstrs < %s \3; RUN: | FileCheck -check-prefix=XTENSA %s4 5define i32 @jump(i1 %a) {6; XTENSA-LABEL: jump:7; XTENSA: movi a8, 18; XTENSA-NEXT: and a8, a2, a89; XTENSA-NEXT: beqz a8, .LBB0_210; XTENSA-NEXT: # %bb.1: # %iftrue11; XTENSA-NEXT: #APP12; XTENSA-NEXT: #NO_APP13; XTENSA-NEXT: #APP14; XTENSA-NEXT: .space 102415; XTENSA-NEXT: #NO_APP16; XTENSA-NEXT: movi a2, 117; XTENSA-NEXT: ret18; XTENSA-NEXT: .LBB0_2: # %jmp19; XTENSA-NEXT: #APP20; XTENSA-NEXT: #NO_APP21; XTENSA-NEXT: movi a2, 122; XTENSA-NEXT: ret23 br i1 %a, label %iftrue, label %jmp24 25jmp:26 call void asm sideeffect "", ""()27 br label %tail28 29iftrue:30 call void asm sideeffect "", ""()31 br label %space32 33space:34 call void asm sideeffect ".space 1024", ""()35 br label %tail36 37tail:38 ret i32 139}40 41define i32 @jx(i1 %a) {42; XTENSA-LABEL: jx:43; XTENSA: addi a8, a1, -1644; XTENSA-NEXT: or a1, a8, a845; XTENSA-NEXT: .cfi_def_cfa_offset 1646; XTENSA-NEXT: movi a8, 147; XTENSA-NEXT: and a8, a2, a848; XTENSA-NEXT: bnez a8, .LBB1_149; XTENSA-NEXT: # %bb.4:50; XTENSA-NEXT: l32r a8, .LCPI1_051; XTENSA-NEXT: jx a852; XTENSA-NEXT: .LBB1_1: # %iftrue53; XTENSA-NEXT: #APP54; XTENSA-NEXT: #NO_APP55; XTENSA-NEXT: #APP56; XTENSA-NEXT: .space 104857657; XTENSA-NEXT: #NO_APP58; XTENSA-NEXT: j .LBB1_359; XTENSA-NEXT: .LBB1_2: # %jmp60; XTENSA-NEXT: #APP61; XTENSA-NEXT: #NO_APP62; XTENSA-NEXT: .LBB1_3: # %tail63; XTENSA-NEXT: movi a2, 164; XTENSA-NEXT: addi a8, a1, 1665; XTENSA-NEXT: or a1, a8, a866; XTENSA-NEXT: ret67 br i1 %a, label %iftrue, label %jmp68 69jmp:70 call void asm sideeffect "", ""()71 br label %tail72 73iftrue:74 call void asm sideeffect "", ""()75 br label %space76 77space:78 call void asm sideeffect ".space 1048576", ""()79 br label %tail80 81tail:82 ret i32 183}84 85define void @relax_spill() {86; XTENSA-LABEL: relax_spill:87; XTENSA: addi a8, a1, -3288; XTENSA-NEXT: or a1, a8, a889; XTENSA-NEXT: .cfi_def_cfa_offset 3290; XTENSA-NEXT: s32i a12, a1, 16 # 4-byte Folded Spill91; XTENSA-NEXT: s32i a13, a1, 12 # 4-byte Folded Spill92; XTENSA-NEXT: s32i a14, a1, 8 # 4-byte Folded Spill93; XTENSA-NEXT: s32i a15, a1, 4 # 4-byte Folded Spill94; XTENSA-NEXT: .cfi_offset a12, -495; XTENSA-NEXT: .cfi_offset a13, -896; XTENSA-NEXT: .cfi_offset a14, -1297; XTENSA-NEXT: .cfi_offset a15, -1698; XTENSA-NEXT: #APP99; XTENSA-NEXT: #NO_APP100; XTENSA-NEXT: #APP101; XTENSA-NEXT: addi a2, a3, 1102; XTENSA-NEXT: #NO_APP103; XTENSA-NEXT: #APP104; XTENSA-NEXT: addi a3, a3, 1105; XTENSA-NEXT: #NO_APP106; XTENSA-NEXT: #APP107; XTENSA-NEXT: addi a4, a3, 1108; XTENSA-NEXT: #NO_APP109; XTENSA-NEXT: #APP110; XTENSA-NEXT: addi a5, a3, 1111; XTENSA-NEXT: #NO_APP112; XTENSA-NEXT: #APP113; XTENSA-NEXT: addi a6, a3, 1114; XTENSA-NEXT: #NO_APP115; XTENSA-NEXT: #APP116; XTENSA-NEXT: addi a7, a3, 1117; XTENSA-NEXT: #NO_APP118; XTENSA-NEXT: #APP119; XTENSA-NEXT: addi a8, a3, 1120; XTENSA-NEXT: #NO_APP121; XTENSA-NEXT: #APP122; XTENSA-NEXT: addi a9, a3, 1123; XTENSA-NEXT: #NO_APP124; XTENSA-NEXT: #APP125; XTENSA-NEXT: addi a10, a3, 1126; XTENSA-NEXT: #NO_APP127; XTENSA-NEXT: #APP128; XTENSA-NEXT: addi a11, a3, 1129; XTENSA-NEXT: #NO_APP130; XTENSA-NEXT: #APP131; XTENSA-NEXT: addi a12, a3, 1132; XTENSA-NEXT: #NO_APP133; XTENSA-NEXT: #APP134; XTENSA-NEXT: addi a13, a3, 1135; XTENSA-NEXT: #NO_APP136; XTENSA-NEXT: #APP137; XTENSA-NEXT: addi a14, a3, 1138; XTENSA-NEXT: #NO_APP139; XTENSA-NEXT: #APP140; XTENSA-NEXT: addi a15, a3, 1141; XTENSA-NEXT: #NO_APP142; XTENSA-NEXT: beq a5, a6, .LBB2_1143; XTENSA-NEXT: # %bb.3:144; XTENSA-NEXT: s32i a12, a1, 0145; XTENSA-NEXT: l32r a12, .LCPI2_0146; XTENSA-NEXT: jx a12147; XTENSA-NEXT: .LBB2_1: # %iftrue148; XTENSA-NEXT: #APP149; XTENSA-NEXT: .space 536870912150; XTENSA-NEXT: #NO_APP151; XTENSA-NEXT: j .LBB2_2152; XTENSA-NEXT: .LBB2_4: # %iffalse153; XTENSA-NEXT: l32i a12, a1, 0154; XTENSA-NEXT: .LBB2_2: # %iffalse155; XTENSA-NEXT: #APP156; XTENSA-NEXT: #NO_APP157; XTENSA-NEXT: #APP158; XTENSA-NEXT: # reg use a2159; XTENSA-NEXT: #NO_APP160; XTENSA-NEXT: #APP161; XTENSA-NEXT: # reg use a3162; XTENSA-NEXT: #NO_APP163; XTENSA-NEXT: #APP164; XTENSA-NEXT: # reg use a4165; XTENSA-NEXT: #NO_APP166; XTENSA-NEXT: #APP167; XTENSA-NEXT: # reg use a5168; XTENSA-NEXT: #NO_APP169; XTENSA-NEXT: #APP170; XTENSA-NEXT: # reg use a6171; XTENSA-NEXT: #NO_APP172; XTENSA-NEXT: #APP173; XTENSA-NEXT: # reg use a7174; XTENSA-NEXT: #NO_APP175; XTENSA-NEXT: #APP176; XTENSA-NEXT: # reg use a8177; XTENSA-NEXT: #NO_APP178; XTENSA-NEXT: #APP179; XTENSA-NEXT: # reg use a9180; XTENSA-NEXT: #NO_APP181; XTENSA-NEXT: #APP182; XTENSA-NEXT: # reg use a10183; XTENSA-NEXT: #NO_APP184; XTENSA-NEXT: #APP185; XTENSA-NEXT: # reg use a11186; XTENSA-NEXT: #NO_APP187; XTENSA-NEXT: #APP188; XTENSA-NEXT: # reg use a12189; XTENSA-NEXT: #NO_APP190; XTENSA-NEXT: #APP191; XTENSA-NEXT: # reg use a13192; XTENSA-NEXT: #NO_APP193; XTENSA-NEXT: #APP194; XTENSA-NEXT: # reg use a14195; XTENSA-NEXT: #NO_APP196; XTENSA-NEXT: #APP197; XTENSA-NEXT: # reg use a15198; XTENSA-NEXT: #NO_APP199; XTENSA-NEXT: l32i a15, a1, 4 # 4-byte Folded Reload200; XTENSA-NEXT: l32i a14, a1, 8 # 4-byte Folded Reload201; XTENSA-NEXT: l32i a13, a1, 12 # 4-byte Folded Reload202; XTENSA-NEXT: l32i a12, a1, 16 # 4-byte Folded Reload203; XTENSA-NEXT: addi a8, a1, 32204; XTENSA-NEXT: or a1, a8, a8205; XTENSA-NEXT: ret206 call void asm sideeffect "", ""()207 %a2 = call i32 asm sideeffect "addi a2, a3, 1", "={a2}"()208 %a3 = call i32 asm sideeffect "addi a3, a3, 1", "={a3}"()209 %a4 = call i32 asm sideeffect "addi a4, a3, 1", "={a4}"()210 %a5 = call i32 asm sideeffect "addi a5, a3, 1", "={a5}"()211 %a6 = call i32 asm sideeffect "addi a6, a3, 1", "={a6}"()212 %a7 = call i32 asm sideeffect "addi a7, a3, 1", "={a7}"()213 %a8 = call i32 asm sideeffect "addi a8, a3, 1", "={a8}"()214 %a9 = call i32 asm sideeffect "addi a9, a3, 1", "={a9}"()215 %a10 = call i32 asm sideeffect "addi a10, a3, 1", "={a10}"()216 %a11 = call i32 asm sideeffect "addi a11, a3, 1", "={a11}"()217 %a12 = call i32 asm sideeffect "addi a12, a3, 1", "={a12}"()218 %a13 = call i32 asm sideeffect "addi a13, a3, 1", "={a13}"()219 %a14 = call i32 asm sideeffect "addi a14, a3, 1", "={a14}"()220 %a15 = call i32 asm sideeffect "addi a15, a3, 1", "={a15}"()221 222 %cmp = icmp eq i32 %a5, %a6223 br i1 %cmp, label %iftrue, label %iffalse224 225iftrue:226 call void asm sideeffect ".space 536870912", ""()227 br label %iffalse228 229iffalse:230 call void asm sideeffect "", ""()231 call void asm sideeffect "# reg use $0", "{a2}"(i32 %a2)232 call void asm sideeffect "# reg use $0", "{a3}"(i32 %a3)233 call void asm sideeffect "# reg use $0", "{a4}"(i32 %a4)234 call void asm sideeffect "# reg use $0", "{a5}"(i32 %a5)235 call void asm sideeffect "# reg use $0", "{a6}"(i32 %a6)236 call void asm sideeffect "# reg use $0", "{a7}"(i32 %a7)237 call void asm sideeffect "# reg use $0", "{a8}"(i32 %a8)238 call void asm sideeffect "# reg use $0", "{a9}"(i32 %a9)239 call void asm sideeffect "# reg use $0", "{a10}"(i32 %a10)240 call void asm sideeffect "# reg use $0", "{a11}"(i32 %a11)241 call void asm sideeffect "# reg use $0", "{a12}"(i32 %a12)242 call void asm sideeffect "# reg use $0", "{a13}"(i32 %a13)243 call void asm sideeffect "# reg use $0", "{a14}"(i32 %a14)244 call void asm sideeffect "# reg use $0", "{a15}"(i32 %a15)245 ret void246}247