diff options
author | QingShan Zhang <qshanz@cn.ibm.com> | 2020-08-27 05:02:16 +0000 |
---|---|---|
committer | QingShan Zhang <qshanz@cn.ibm.com> | 2020-08-27 05:02:55 +0000 |
commit | a60d10ac0a96756bb56970123196cd8ad117b70f (patch) | |
tree | 40dc1da1aba3fd17f12ba22c26edec01e0a7a0cb | |
parent | 6c05ca21b92a720a3a6022bc1604a8809aaa85fd (diff) | |
download | llvm-a60d10ac0a96756bb56970123196cd8ad117b70f.zip llvm-a60d10ac0a96756bb56970123196cd8ad117b70f.tar.gz llvm-a60d10ac0a96756bb56970123196cd8ad117b70f.tar.bz2 |
[NFC][Test] Update the test with utils/update_llc_test_checks.py
-rw-r--r-- | llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll | 259 |
1 files changed, 231 insertions, 28 deletions
diff --git a/llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll b/llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll index 12c9dfec..4d339e2 100644 --- a/llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll +++ b/llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll @@ -1,3 +1,4 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -ppc-asm-full-reg-names -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr9 < %s | FileCheck %s ; test_no_prep: @@ -19,8 +20,21 @@ define i64 @test_no_prep(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_no_prep: -; CHECK: addi r3, r3, 4004 -; CHECK: .LBB0_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmplwi r4, 0 +; CHECK-NEXT: beq cr0, .LBB0_4 +; CHECK-NEXT: # %bb.1: # %.preheader +; CHECK-NEXT: cmpldi r4, 1 +; CHECK-NEXT: li r5, 1 +; CHECK-NEXT: addi r3, r3, 4004 +; CHECK-NEXT: li r6, -3 +; CHECK-NEXT: li r7, -2 +; CHECK-NEXT: li r8, -1 +; CHECK-NEXT: iselgt r5, r4, r5 +; CHECK-NEXT: mtctr r5 +; CHECK-NEXT: li r5, 0 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB0_2: ; CHECK-NEXT: ldx r9, r3, r6 ; CHECK-NEXT: ldx r10, r3, r7 ; CHECK-NEXT: ldx r11, r3, r8 @@ -30,6 +44,12 @@ define i64 @test_no_prep(i8* %0, i32 signext %1) { ; CHECK-NEXT: mulld r9, r9, r11 ; CHECK-NEXT: maddld r5, r9, r12, r5 ; CHECK-NEXT: bdnz .LBB0_2 +; CHECK-NEXT: # %bb.3: +; CHECK-NEXT: add r3, r5, r4 +; CHECK-NEXT: blr +; CHECK-NEXT: .LBB0_4: +; CHECK-NEXT: addi r3, r4, 0 +; CHECK-NEXT: blr %3 = sext i32 %1 to i64 %4 = icmp eq i32 %1, 0 br i1 %4, label %27, label %5 @@ -83,8 +103,19 @@ define i64 @test_no_prep(i8* %0, i32 signext %1) { define i64 @test_ds_prep(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_ds_prep: -; CHECK: addi r6, r3, 4002 -; CHECK: .LBB1_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmplwi r4, 0 +; CHECK-NEXT: beq cr0, .LBB1_4 +; CHECK-NEXT: # %bb.1: # %.preheader +; CHECK-NEXT: cmpldi r4, 1 +; CHECK-NEXT: li r5, 1 +; CHECK-NEXT: addi r6, r3, 4002 +; CHECK-NEXT: li r7, -1 +; CHECK-NEXT: iselgt r3, r4, r5 +; CHECK-NEXT: mtctr r3 +; CHECK-NEXT: li r3, 0 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB1_2: ; CHECK-NEXT: ldx r9, r6, r7 ; CHECK-NEXT: ld r10, 0(r6) ; CHECK-NEXT: ldx r11, r6, r5 @@ -95,6 +126,12 @@ define i64 @test_ds_prep(i8* %0, i32 signext %1) { ; CHECK-NEXT: maddld r3, r9, r6, r3 ; CHECK-NEXT: mr r6, r8 ; CHECK-NEXT: bdnz .LBB1_2 +; CHECK-NEXT: # %bb.3: +; CHECK-NEXT: add r3, r3, r4 +; CHECK-NEXT: blr +; CHECK-NEXT: .LBB1_4: +; CHECK-NEXT: addi r3, r4, 0 +; CHECK-NEXT: blr %3 = sext i32 %1 to i64 %4 = icmp eq i32 %1, 0 br i1 %4, label %27, label %5 @@ -158,8 +195,28 @@ define i64 @test_ds_prep(i8* %0, i32 signext %1) { define i64 @test_max_number_reminder(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_max_number_reminder: -; CHECK: addi r9, r3, 4002 -; CHECK: .LBB2_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmplwi r4, 0 +; CHECK-NEXT: std r25, -56(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r26, -48(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r27, -40(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r28, -32(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r29, -24(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill +; CHECK-NEXT: beq cr0, .LBB2_3 +; CHECK-NEXT: # %bb.1: # %.preheader +; CHECK-NEXT: cmpldi r4, 1 +; CHECK-NEXT: li r5, 1 +; CHECK-NEXT: addi r9, r3, 4002 +; CHECK-NEXT: li r6, -1 +; CHECK-NEXT: li r7, 3 +; CHECK-NEXT: li r8, 5 +; CHECK-NEXT: li r10, 9 +; CHECK-NEXT: iselgt r3, r4, r5 +; CHECK-NEXT: mtctr r3 +; CHECK-NEXT: li r3, 0 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB2_2: ; CHECK-NEXT: ldx r12, r9, r6 ; CHECK-NEXT: ld r0, 0(r9) ; CHECK-NEXT: ldx r30, r9, r5 @@ -180,6 +237,18 @@ define i64 @test_max_number_reminder(i8* %0, i32 signext %1) { ; CHECK-NEXT: maddld r3, r12, r9, r3 ; CHECK-NEXT: mr r9, r11 ; CHECK-NEXT: bdnz .LBB2_2 +; CHECK-NEXT: b .LBB2_4 +; CHECK-NEXT: .LBB2_3: +; CHECK-NEXT: li r3, 0 +; CHECK-NEXT: .LBB2_4: +; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r28, -32(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r27, -40(r1) # 8-byte Folded Reload +; CHECK-NEXT: add r3, r3, r4 +; CHECK-NEXT: ld r26, -48(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r25, -56(r1) # 8-byte Folded Reload +; CHECK-NEXT: blr %3 = sext i32 %1 to i64 %4 = icmp eq i32 %1, 0 br i1 %4, label %47, label %5 @@ -253,8 +322,19 @@ define i64 @test_max_number_reminder(i8* %0, i32 signext %1) { define dso_local i64 @test_update_ds_prep_interact(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_update_ds_prep_interact: -; CHECK: addi r3, r3, 3998 -; CHECK: .LBB3_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmplwi r4, 0 +; CHECK-NEXT: beq cr0, .LBB3_4 +; CHECK-NEXT: # %bb.1: # %.preheader +; CHECK-NEXT: cmpldi r4, 1 +; CHECK-NEXT: li r6, 1 +; CHECK-NEXT: addi r3, r3, 3998 +; CHECK-NEXT: li r7, -1 +; CHECK-NEXT: iselgt r5, r4, r6 +; CHECK-NEXT: mtctr r5 +; CHECK-NEXT: li r5, 0 +; CHECK-NEXT: .p2align 5 +; CHECK-NEXT: .LBB3_2: ; CHECK-NEXT: ldu r8, 4(r3) ; CHECK-NEXT: ldx r9, r3, r7 ; CHECK-NEXT: ldx r10, r3, r6 @@ -263,6 +343,12 @@ define dso_local i64 @test_update_ds_prep_interact(i8* %0, i32 signext %1) { ; CHECK-NEXT: mulld r8, r8, r10 ; CHECK-NEXT: maddld r5, r8, r11, r5 ; CHECK-NEXT: bdnz .LBB3_2 +; CHECK-NEXT: # %bb.3: +; CHECK-NEXT: add r3, r5, r4 +; CHECK-NEXT: blr +; CHECK-NEXT: .LBB3_4: +; CHECK-NEXT: addi r3, r4, 0 +; CHECK-NEXT: blr %3 = sext i32 %1 to i64 %4 = icmp eq i32 %1, 0 br i1 %4, label %28, label %5 @@ -317,9 +403,20 @@ define dso_local i64 @test_update_ds_prep_interact(i8* %0, i32 signext %1) { define i64 @test_update_ds_prep_nointeract(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_update_ds_prep_nointeract: -; CHECK: addi r5, r3, 4000 -; CHECK: addi r3, r3, 4003 -; CHECK: .LBB4_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmplwi r4, 0 +; CHECK-NEXT: beq cr0, .LBB4_4 +; CHECK-NEXT: # %bb.1: # %.preheader +; CHECK-NEXT: cmpldi r4, 1 +; CHECK-NEXT: li r6, 1 +; CHECK-NEXT: addi r5, r3, 4000 +; CHECK-NEXT: addi r3, r3, 4003 +; CHECK-NEXT: li r7, -1 +; CHECK-NEXT: iselgt r6, r4, r6 +; CHECK-NEXT: mtctr r6 +; CHECK-NEXT: li r6, 0 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB4_2: ; CHECK-NEXT: lbzu r8, 1(r5) ; CHECK-NEXT: ldx r9, r3, r7 ; CHECK-NEXT: ld r10, 0(r3) @@ -329,6 +426,12 @@ define i64 @test_update_ds_prep_nointeract(i8* %0, i32 signext %1) { ; CHECK-NEXT: mulld r8, r8, r10 ; CHECK-NEXT: maddld r6, r8, r11, r6 ; CHECK-NEXT: bdnz .LBB4_2 +; CHECK-NEXT: # %bb.3: +; CHECK-NEXT: add r3, r6, r4 +; CHECK-NEXT: blr +; CHECK-NEXT: .LBB4_4: +; CHECK-NEXT: addi r3, r4, 0 +; CHECK-NEXT: blr %3 = sext i32 %1 to i64 %4 = icmp eq i32 %1, 0 br i1 %4, label %27, label %5 @@ -386,9 +489,21 @@ define i64 @test_update_ds_prep_nointeract(i8* %0, i32 signext %1) { define dso_local i64 @test_ds_multiple_chains(i8* %0, i8* %1, i32 signext %2) { ; CHECK-LABEL: test_ds_multiple_chains: -; CHECK: addi r3, r3, 4001 -; CHECK: addi r4, r4, 4001 -; CHECK: .LBB5_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmplwi r5, 0 +; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill +; CHECK-NEXT: beq cr0, .LBB5_3 +; CHECK-NEXT: # %bb.1: # %.preheader +; CHECK-NEXT: cmpldi r5, 1 +; CHECK-NEXT: li r6, 1 +; CHECK-NEXT: addi r3, r3, 4001 +; CHECK-NEXT: addi r4, r4, 4001 +; CHECK-NEXT: li r7, 9 +; CHECK-NEXT: iselgt r6, r5, r6 +; CHECK-NEXT: mtctr r6 +; CHECK-NEXT: li r6, 0 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB5_2: ; CHECK-NEXT: ld r8, 0(r3) ; CHECK-NEXT: ldx r9, r3, r7 ; CHECK-NEXT: ld r10, 4(r3) @@ -407,6 +522,13 @@ define dso_local i64 @test_ds_multiple_chains(i8* %0, i8* %1, i32 signext %2) { ; CHECK-NEXT: mulld r8, r8, r30 ; CHECK-NEXT: maddld r6, r8, r9, r6 ; CHECK-NEXT: bdnz .LBB5_2 +; CHECK-NEXT: b .LBB5_4 +; CHECK-NEXT: .LBB5_3: +; CHECK-NEXT: li r6, 0 +; CHECK-NEXT: .LBB5_4: +; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload +; CHECK-NEXT: add r3, r6, r5 +; CHECK-NEXT: blr %4 = sext i32 %2 to i64 %5 = icmp eq i32 %2, 0 br i1 %5, label %45, label %6 @@ -493,13 +615,43 @@ define dso_local i64 @test_ds_multiple_chains(i8* %0, i8* %1, i32 signext %2) { define i64 @test_ds_cross_basic_blocks(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_ds_cross_basic_blocks: -; CHECK: addi r6, r3, 4009 -; CHECK: .LBB6_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmplwi r4, 0 +; CHECK-NEXT: std r26, -48(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r27, -40(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r28, -32(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r29, -24(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill +; CHECK-NEXT: beq cr0, .LBB6_8 +; CHECK-NEXT: # %bb.1: +; CHECK-NEXT: cmpldi r4, 1 +; CHECK-NEXT: li r7, 1 +; CHECK-NEXT: addi r6, r3, 4009 +; CHECK-NEXT: addis r5, r2, .LC0@toc@ha +; CHECK-NEXT: ld r5, .LC0@toc@l(r5) +; CHECK-NEXT: iselgt r8, r4, r7 +; CHECK-NEXT: lis r4, -21846 +; CHECK-NEXT: li r3, 0 +; CHECK-NEXT: li r9, -7 +; CHECK-NEXT: li r10, -6 +; CHECK-NEXT: li r11, 1 +; CHECK-NEXT: li r12, 1 +; CHECK-NEXT: li r30, 1 +; CHECK-NEXT: ld r5, 0(r5) +; CHECK-NEXT: mtctr r8 +; CHECK-NEXT: li r8, -9 +; CHECK-NEXT: addi r5, r5, -1 +; CHECK-NEXT: ori r4, r4, 43691 +; CHECK-NEXT: li r29, 1 +; CHECK-NEXT: li r28, 1 +; CHECK-NEXT: b .LBB6_4 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB6_2: ; CHECK-NEXT: ldx r0, r6, r8 ; CHECK-NEXT: add r28, r0, r28 ; CHECK-NEXT: ld r0, -8(r6) ; CHECK-NEXT: add r29, r0, r29 -; CHECK-NEXT: .LBB6_3: # +; CHECK-NEXT: .LBB6_3: ; CHECK-NEXT: addi r6, r6, 1 ; CHECK-NEXT: mulld r0, r29, r28 ; CHECK-NEXT: mulld r0, r0, r30 @@ -507,7 +659,7 @@ define i64 @test_ds_cross_basic_blocks(i8* %0, i32 signext %1) { ; CHECK-NEXT: mulld r0, r0, r11 ; CHECK-NEXT: maddld r3, r0, r7, r3 ; CHECK-NEXT: bdz .LBB6_9 -; CHECK-NEXT: .LBB6_4: # +; CHECK-NEXT: .LBB6_4: ; CHECK-NEXT: lbzu r0, 1(r5) ; CHECK-NEXT: mulhwu r27, r0, r4 ; CHECK-NEXT: rlwinm r26, r27, 0, 0, 30 @@ -516,22 +668,32 @@ define i64 @test_ds_cross_basic_blocks(i8* %0, i32 signext %1) { ; CHECK-NEXT: sub r0, r0, r27 ; CHECK-NEXT: cmplwi r0, 1 ; CHECK-NEXT: beq cr0, .LBB6_2 -; CHECK-NEXT: # %bb.5: # +; CHECK-NEXT: # %bb.5: ; CHECK-NEXT: clrlwi r0, r0, 24 ; CHECK-NEXT: cmplwi r0, 2 ; CHECK-NEXT: bne cr0, .LBB6_7 -; CHECK-NEXT: # %bb.6: # +; CHECK-NEXT: # %bb.6: ; CHECK-NEXT: ldx r0, r6, r9 ; CHECK-NEXT: add r30, r0, r30 ; CHECK-NEXT: ld r0, -4(r6) ; CHECK-NEXT: add r12, r0, r12 ; CHECK-NEXT: b .LBB6_3 ; CHECK-NEXT: .p2align 4 -; CHECK-NEXT: .LBB6_7: # +; CHECK-NEXT: .LBB6_7: ; CHECK-NEXT: ldx r0, r6, r10 ; CHECK-NEXT: add r11, r0, r11 ; CHECK-NEXT: ld r0, 0(r6) ; CHECK-NEXT: add r7, r0, r7 +; CHECK-NEXT: b .LBB6_3 +; CHECK-NEXT: .LBB6_8: +; CHECK-NEXT: li r3, 0 +; CHECK-NEXT: .LBB6_9: +; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r28, -32(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r27, -40(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r26, -48(r1) # 8-byte Folded Reload +; CHECK-NEXT: blr %3 = sext i32 %1 to i64 %4 = icmp eq i32 %1, 0 br i1 %4, label %66, label %5 @@ -636,8 +798,17 @@ define i64 @test_ds_cross_basic_blocks(i8* %0, i32 signext %1) { define float @test_ds_float(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_ds_float: -; CHECK: addi r3, r3, 4002 -; CHECK: .LBB7_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmpwi r4, 1 +; CHECK-NEXT: blt cr0, .LBB7_4 +; CHECK-NEXT: # %bb.1: +; CHECK-NEXT: addi r3, r3, 4002 +; CHECK-NEXT: clrldi r4, r4, 32 +; CHECK-NEXT: xxlxor f1, f1, f1 +; CHECK-NEXT: mtctr r4 +; CHECK-NEXT: li r4, -1 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB7_2: ; CHECK-NEXT: lfsx f0, r3, r4 ; CHECK-NEXT: lfs f2, 0(r3) ; CHECK-NEXT: xsmulsp f0, f0, f2 @@ -648,6 +819,11 @@ define float @test_ds_float(i8* %0, i32 signext %1) { ; CHECK-NEXT: xsmulsp f0, f0, f4 ; CHECK-NEXT: xsaddsp f1, f1, f0 ; CHECK-NEXT: bdnz .LBB7_2 +; CHECK-NEXT: # %bb.3: +; CHECK-NEXT: blr +; CHECK-NEXT: .LBB7_4: +; CHECK-NEXT: xxlxor f1, f1, f1 +; CHECK-NEXT: blr %3 = icmp sgt i32 %1, 0 br i1 %3, label %4, label %28 @@ -704,8 +880,17 @@ define float @test_ds_float(i8* %0, i32 signext %1) { define float @test_ds_combine_float_int(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_ds_combine_float_int: -; CHECK: addi r3, r3, 4002 -; CHECK: .LBB8_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmpwi r4, 1 +; CHECK-NEXT: blt cr0, .LBB8_4 +; CHECK-NEXT: # %bb.1: +; CHECK-NEXT: addi r3, r3, 4002 +; CHECK-NEXT: clrldi r4, r4, 32 +; CHECK-NEXT: xxlxor f1, f1, f1 +; CHECK-NEXT: mtctr r4 +; CHECK-NEXT: li r4, -1 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB8_2: ; CHECK-NEXT: lfd f4, 0(r3) ; CHECK-NEXT: lfsx f0, r3, r4 ; CHECK-NEXT: xscvuxdsp f4, f4 @@ -717,6 +902,11 @@ define float @test_ds_combine_float_int(i8* %0, i32 signext %1) { ; CHECK-NEXT: xsmulsp f0, f3, f0 ; CHECK-NEXT: xsaddsp f1, f1, f0 ; CHECK-NEXT: bdnz .LBB8_2 +; CHECK-NEXT: # %bb.3: +; CHECK-NEXT: blr +; CHECK-NEXT: .LBB8_4: +; CHECK-NEXT: xxlxor f1, f1, f1 +; CHECK-NEXT: blr %3 = icmp sgt i32 %1, 0 br i1 %3, label %4, label %29 @@ -773,9 +963,16 @@ define float @test_ds_combine_float_int(i8* %0, i32 signext %1) { define i64 @test_ds_lwa_prep(i8* %0, i32 signext %1) { ; CHECK-LABEL: test_ds_lwa_prep: -; CHECK: addi r5, r3, 2 -; CHECK: li r6, -1 -; CHECK: .LBB9_2: # +; CHECK: # %bb.0: +; CHECK-NEXT: cmpwi r4, 1 +; CHECK-NEXT: blt cr0, .LBB9_4 +; CHECK-NEXT: # %bb.1: # %.preheader +; CHECK-NEXT: mtctr r4 +; CHECK-NEXT: addi r5, r3, 2 +; CHECK-NEXT: li r3, 0 +; CHECK-NEXT: li r6, -1 +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: .LBB9_2: ; CHECK-NEXT: lwax r7, r5, r6 ; CHECK-NEXT: lwa r8, 0(r5) ; CHECK-NEXT: lwa r9, 4(r5) @@ -785,6 +982,12 @@ define i64 @test_ds_lwa_prep(i8* %0, i32 signext %1) { ; CHECK-NEXT: mulld r7, r7, r9 ; CHECK-NEXT: maddld r3, r7, r10, r3 ; CHECK-NEXT: bdnz .LBB9_2 +; CHECK-NEXT: # %bb.3: +; CHECK-NEXT: add r3, r3, r4 +; CHECK-NEXT: blr +; CHECK-NEXT: .LBB9_4: +; CHECK-NEXT: addi r3, r4, 0 +; CHECK-NEXT: blr %3 = sext i32 %1 to i64 %4 = icmp sgt i32 %1, 0 |