| # NOTE: Assertions have been autogenerated by utils/update_givaluetracking_test_checks.py UTC_ARGS: --version 6 |
| # RUN: llc -mtriple=aarch64 -passes="print<gisel-value-tracking>" -filetype=null %s 2>&1 | FileCheck %s |
| |
| --- |
| name: CTLSConst8AmbigousMaxSignbitNum |
| body: | |
| bb.1: |
| ; NOTE: Currently we do not estimate max sign bits in KnownBits, |
| ; so while we could get more accurate here, this is currently |
| ; not possible. |
| ; CHECK-LABEL: name: @CTLSConst8AmbigousMaxSignbitNum |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:00110000 SignBits:2 |
| ; CHECK-NEXT: %2:_ KnownBits:00001000 SignBits:4 |
| ; CHECK-NEXT: %3:_ KnownBits:00??0000 SignBits:2 |
| ; CHECK-NEXT: %4:_ KnownBits:00??1000 SignBits:2 |
| ; CHECK-NEXT: %5:_ KnownBits:00000??? SignBits:5 |
| %0:_(i8) = COPY $b0 |
| %1:_(i8) = G_CONSTANT i8 48 |
| %2:_(i8) = G_CONSTANT i8 8 |
| %3:_(i8) = G_AND %0, %1 |
| %4:_(i8) = G_OR %3, %2 |
| %5:_(i8) = G_CTLS %4 |
| ... |
| |
| --- |
| name: CTLSNoKnown8 |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSNoKnown8 |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:0000000000000??? SignBits:13 |
| %0:_(i8) = COPY $b0 |
| %1:_(i16) = G_CTLS %0 |
| ... |
| |
| --- |
| name: CTLSNoKnown16 |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSNoKnown16 |
| ; CHECK-NEXT: %0:_ KnownBits:???????????????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:000000000000???? SignBits:12 |
| %0:_(i16) = COPY $h0 |
| %1:_(i16) = G_CTLS %0 |
| ... |
| |
| --- |
| name: CTLSNoKnown32 |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSNoKnown32 |
| ; CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:00000000000????? SignBits:11 |
| %0:_(i32) = COPY $s0 |
| %1:_(i16) = G_CTLS %0 |
| ... |
| |
| |
| --- |
| name: CTLSHalfKnown8 |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSHalfKnown8 |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:00000100 SignBits:5 |
| ; CHECK-NEXT: %2:_ KnownBits:00000?00 SignBits:5 |
| ; CHECK-NEXT: %3:_ KnownBits:000001?? SignBits:5 |
| %0:_(i8) = COPY $b0 |
| %1:_(i8) = G_CONSTANT i8 4 |
| %2:_(i8) = G_AND %0, %1 |
| %3:_(i8) = G_CTLS %2 |
| ... |
| |
| --- |
| name: CTLSHalfKnown16 |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSHalfKnown16 |
| ; CHECK-NEXT: %0:_ KnownBits:???????????????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:0000000001000000 SignBits:9 |
| ; CHECK-NEXT: %2:_ KnownBits:000000000?000000 SignBits:9 |
| ; CHECK-NEXT: %3:_ KnownBits:0000000000001??? SignBits:12 |
| %0:_(i16) = COPY $h0 |
| %1:_(i16) = G_CONSTANT i16 64 |
| %2:_(i16) = G_AND %0, %1 |
| %3:_(i16) = G_CTLS %2 |
| ... |
| |
| --- |
| name: CTLSHalfConst8Zero |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSHalfConst8Zero |
| ; CHECK-NEXT: %0:_ KnownBits:00000000 SignBits:8 |
| ; CHECK-NEXT: %1:_ KnownBits:00000111 SignBits:5 |
| %0:_(i8) = G_CONSTANT i8 0 |
| %1:_(i8) = G_CTLS %0 |
| ... |
| |
| --- |
| name: CTLSHalfConst16Zero |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSHalfConst16Zero |
| ; CHECK-NEXT: %0:_ KnownBits:0000000000000000 SignBits:16 |
| ; CHECK-NEXT: %1:_ KnownBits:0000000000001111 SignBits:12 |
| %0:_(i16) = G_CONSTANT i16 0 |
| %1:_(i16) = G_CTLS %0 |
| ... |
| |
| --- |
| name: VectorCTLSConst16Zero |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @VectorCTLSConst16Zero |
| ; CHECK-NEXT: %0:_ KnownBits:0000000000000000 SignBits:16 |
| ; CHECK-NEXT: %1:_ KnownBits:0000000000000000 SignBits:16 |
| ; CHECK-NEXT: %2:_ KnownBits:0000000000001111 SignBits:12 |
| %0:_(i16) = G_CONSTANT i16 0 |
| %1:_(<4 x i16>) = G_BUILD_VECTOR %0, %0, %0, %0 |
| %3:_(<4 x i16>) = G_CTLS %1 |
| ... |
| |
| --- |
| name: VectorCTLSNoneKnown |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @VectorCTLSNoneKnown |
| ; CHECK-NEXT: %0:_ KnownBits:???????????????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:0000000000001000 SignBits:12 |
| ; CHECK-NEXT: %2:_ KnownBits:???????????????? SignBits:9 |
| ; CHECK-NEXT: %3:_ KnownBits:???????????????? SignBits:1 |
| ; CHECK-NEXT: %4:_ KnownBits:???????????????? SignBits:1 |
| ; CHECK-NEXT: %5:_ KnownBits:000000000000???? SignBits:12 |
| %0:_(i16) = COPY $h0 |
| %1:_(i16) = G_CONSTANT i16 8 |
| %2:_(i16) = G_ASHR %0, %1 |
| %3:_(i16) = COPY $h1 |
| %4:_(<4 x i16>) = G_BUILD_VECTOR %2, %3, %2, %3 |
| %5:_(<4 x i16>) = G_CTLS %4 |
| ... |
| |
| --- |
| name: VectorCTLSHighBitKnown |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @VectorCTLSHighBitKnown |
| ; CHECK-NEXT: %0:_ KnownBits:???????????????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:0000000000001000 SignBits:12 |
| ; CHECK-NEXT: %2:_ KnownBits:???????????????? SignBits:9 |
| ; CHECK-NEXT: %3:_ KnownBits:???????????????? SignBits:1 |
| ; CHECK-NEXT: %4:_ KnownBits:0000000000001010 SignBits:12 |
| ; CHECK-NEXT: %5:_ KnownBits:000000000000???? SignBits:12 |
| ; CHECK-NEXT: %6:_ KnownBits:???????????????? SignBits:9 |
| ; CHECK-NEXT: %7:_ KnownBits:0000000000001??? SignBits:12 |
| %0:_(i16) = COPY $h0 |
| %1:_(i16) = G_CONSTANT i16 8 |
| %2:_(i16) = G_ASHR %0, %1 |
| %3:_(i16) = COPY $h1 |
| %4:_(i16) = G_CONSTANT i16 10 |
| %5:_(i16) = G_ASHR %4, %5 |
| %6:_(<4 x i16>) = G_BUILD_VECTOR %2, %5, %2, %4 |
| %7:_(<4 x i16>) = G_CTLS %6 |
| ... |
| |
| --- |
| name: CTLSLargeEnough |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSLargeEnough |
| ; CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000010000 SignBits:27 |
| ; CHECK-NEXT: %2:_ KnownBits:???????????????????????????????? SignBits:17 |
| ; CHECK-NEXT: %3:_ KnownBits:0000000000000000000000000001???? SignBits:27 |
| %0:_(i32) = COPY $s0 |
| %1:_(i32) = G_CONSTANT i32 16 |
| %2:_(i32) = G_ASHR %0, %1 |
| %3:_(i32) = G_CTLS %2 |
| ... |
| |
| --- |
| name: CTLSTooSmallToTrigger |
| body: | |
| bb.1: |
| ; CHECK-LABEL: name: @CTLSTooSmallToTrigger |
| ; CHECK-NEXT: %0:_ KnownBits:???????????????????????????????? SignBits:1 |
| ; CHECK-NEXT: %1:_ KnownBits:00000000000000000000000000001111 SignBits:28 |
| ; CHECK-NEXT: %2:_ KnownBits:???????????????????????????????? SignBits:16 |
| ; CHECK-NEXT: %3:_ KnownBits:000000000000000000000000000????? SignBits:27 |
| %0:_(i32) = COPY $s0 |
| %1:_(i32) = G_CONSTANT i32 15 |
| %2:_(i32) = G_ASHR %0, %1 |
| %3:_(i32) = G_CTLS %2 |
| ... |