| # RUN: llc -mtriple aarch64 -passes="print<gisel-value-tracking>" %s -filetype=null 2>&1 | FileCheck %s |
| |
| # CHECK-LABEL: name: @urem_pow2 |
| # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 |
| # CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000001000 SignBits:28 |
| # CHECK-NEXT: %2:_ KnownBits:00000000000000000000000000000??? SignBits:29 |
| |
| name: urem_pow2 |
| body: | |
| bb.1: |
| liveins: $w0 |
| |
| %0:_(i32) = COPY $w0 |
| %1:_(i32) = G_CONSTANT i32 8 |
| %2:_(i32) = G_UREM %0, %1 |
| $w0 = COPY %2(i32) |
| RET_ReallyLR implicit $w0 |
| ... |
| |
| # CHECK-LABEL: name: @urem_non_pow2 |
| # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 |
| # CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000001010 SignBits:28 |
| # CHECK-NEXT: %2:_ KnownBits:0000000000000000000000000000???? SignBits:28 |
| |
| name: urem_non_pow2 |
| body: | |
| bb.1: |
| liveins: $w0 |
| |
| %0:_(i32) = COPY $w0 |
| %1:_(i32) = G_CONSTANT i32 10 |
| %2:_(i32) = G_UREM %0, %1 |
| $w0 = COPY %2(i32) |
| RET_ReallyLR implicit $w0 |
| ... |
| |
| # CHECK-LABEL: name: @urem |
| # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 |
| # CHECK-NEXT: %1:_ KnownBits:???????????????????????????????? SignBits:1 |
| # CHECK-NEXT: %2:_ KnownBits:???????????????????????????????? SignBits:1 |
| |
| name: urem |
| body: | |
| bb.1: |
| liveins: $w0, $w1 |
| |
| %0:_(i32) = COPY $w0 |
| %1:_(i32) = COPY $w1 |
| %2:_(i32) = G_UREM %0, %1 |
| $w0 = COPY %2(i32) |
| RET_ReallyLR implicit $w0 |
| ... |
| |
| # CHECK-LABEL: name: @urem_implicit_def |
| # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 |
| # CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000001000 SignBits:28 |
| # CHECK-NEXT: %2:_ KnownBits:00000000000000000000000000000??? SignBits:29 |
| |
| name: urem_implicit_def |
| body: | |
| bb.1: |
| liveins: $w0 |
| |
| %0:_(i32) = G_IMPLICIT_DEF |
| %1:_(i32) = G_CONSTANT i32 8 |
| %2:_(i32) = G_UREM %0, %1 |
| $w0 = COPY %2(i32) |
| RET_ReallyLR implicit $w0 |
| ... |
| |
| # CHECK-LABEL: name: @urem_both_implicit_def |
| # CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 |
| # CHECK-NEXT: %1:_ KnownBits:???????????????????????????????? SignBits:1 |
| # CHECK-NEXT: %2:_ KnownBits:???????????????????????????????? SignBits:1 |
| |
| name: urem_both_implicit_def |
| body: | |
| bb.1: |
| |
| %0:_(i32) = G_IMPLICIT_DEF |
| %1:_(i32) = G_IMPLICIT_DEF |
| %2:_(i32) = G_UREM %0, %1 |
| $w0 = COPY %2(i32) |
| RET_ReallyLR implicit $w0 |
| ... |
| |
| # CHECK-LABEL: name: @urem_const_const |
| # CHECK-NEXT: %0:_ KnownBits:00000000000000000000000000001010 SignBits:28 |
| # CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000000011 SignBits:30 |
| # CHECK-NEXT: %2:_ KnownBits:000000000000000000000000000000?? SignBits:30 |
| |
| name: urem_const_const |
| body: | |
| bb.1: |
| |
| %0:_(i32) = G_CONSTANT i32 10 |
| %1:_(i32) = G_CONSTANT i32 3 |
| %2:_(i32) = G_UREM %0, %1 |
| $w0 = COPY %2(i32) |
| RET_ReallyLR implicit $w0 |
| ... |