# NOTE: Assertions have been autogenerated by utils/update_givaluetracking_test_checks.py UTC_ARGS: --version 5
# RUN: llc -mtriple aarch64 -passes="print<gisel-value-tracking>" %s -o - 2>&1 | FileCheck %s

---
name:            Cst
body:             |
  bb.1:
  ; CHECK-LABEL: name: @Cst
  ; CHECK-NEXT: %0:_ KnownBits:10000000 SignBits:1
  ; CHECK-NEXT: %1:_ KnownBits:00000011 SignBits:6
  ; CHECK-NEXT: %2:_ KnownBits:11110000 SignBits:4
    %0:_(s8) = G_CONSTANT i8 128
    %1:_(s8) = G_CONSTANT i8 3
    %2:_(s8) = G_ASHR %0, %1
...
---
name:            CstBig
body:             |
  bb.1:
  ; CHECK-LABEL: name: @CstBig
  ; CHECK-NEXT: %0:_ KnownBits:11111000 SignBits:5
  ; CHECK-NEXT: %1:_ KnownBits:00000110 SignBits:5
  ; CHECK-NEXT: %2:_ KnownBits:11111111 SignBits:8
    %0:_(s8) = G_CONSTANT i8 248
    %1:_(s8) = G_CONSTANT i8 6
    %2:_(s8) = G_ASHR %0, %1
...
---
name:            ScalarVar
body:             |
  bb.1:
  ; CHECK-LABEL: name: @ScalarVar
  ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1
  ; CHECK-NEXT: %1:_ KnownBits:???????? SignBits:1
  ; CHECK-NEXT: %2:_ KnownBits:???????? SignBits:1
    %0:_(s8) = COPY $b0
    %1:_(s8) = COPY $b1
    %2:_(s8) = G_ASHR %0, %1
...
---
name:            ScalarCst
body:             |
  bb.1:
  ; CHECK-LABEL: name: @ScalarCst
  ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1
  ; CHECK-NEXT: %1:_ KnownBits:00000011 SignBits:6
  ; CHECK-NEXT: %2:_ KnownBits:???????? SignBits:4
    %0:_(s8) = COPY $b0
    %1:_(s8) = G_CONSTANT i8 3
    %2:_(s8) = G_ASHR %0, %1
...
---
name:            VectorVar
body:             |
  bb.1:
  ; CHECK-LABEL: name: @VectorVar
  ; CHECK-NEXT: %0:_ KnownBits:???????????????? SignBits:1
  ; CHECK-NEXT: %1:_ KnownBits:???????????????? SignBits:1
  ; CHECK-NEXT: %2:_ KnownBits:???????????????? SignBits:1
    %0:_(<4 x s16>) = COPY $d0
    %1:_(<4 x s16>) = COPY $d1
    %2:_(<4 x s16>) = G_ASHR %0, %1
...
---
name:            VectorCst
body:             |
  bb.1:
  ; CHECK-LABEL: name: @VectorCst
  ; CHECK-NEXT: %0:_ KnownBits:???????????????? SignBits:1
  ; CHECK-NEXT: %1:_ KnownBits:0000000000000011 SignBits:14
  ; CHECK-NEXT: %2:_ KnownBits:0000000000000011 SignBits:14
  ; CHECK-NEXT: %3:_ KnownBits:???????????????? SignBits:4
    %0:_(<4 x s16>) = COPY $d0
    %1:_(s16) = G_CONSTANT i16 3
    %2:_(<4 x s16>) = G_BUILD_VECTOR %1, %1, %1, %1
    %3:_(<4 x s16>) = G_ASHR %0, %2
...
---
name:            VectorCst36
body:             |
  bb.1:
  ; CHECK-LABEL: name: @VectorCst36
  ; CHECK-NEXT: %0:_ KnownBits:???????????????? SignBits:1
  ; CHECK-NEXT: %1:_ KnownBits:0000000000000011 SignBits:14
  ; CHECK-NEXT: %2:_ KnownBits:0000000000000110 SignBits:13
  ; CHECK-NEXT: %3:_ KnownBits:0000000000000?1? SignBits:13
  ; CHECK-NEXT: %4:_ KnownBits:???????????????? SignBits:4
    %0:_(<4 x s16>) = COPY $d0
    %1:_(s16) = G_CONSTANT i16 3
    %2:_(s16) = G_CONSTANT i16 6
    %3:_(<4 x s16>) = G_BUILD_VECTOR %1, %2, %2, %1
    %4:_(<4 x s16>) = G_ASHR %0, %3
...
---
name:            VectorCst3unknown
body:             |
  bb.1:
  ; CHECK-LABEL: name: @VectorCst3unknown
  ; CHECK-NEXT: %0:_ KnownBits:???????????????? SignBits:1
  ; CHECK-NEXT: %1:_ KnownBits:???????????????? SignBits:1
  ; CHECK-NEXT: %2:_ KnownBits:0000000000000011 SignBits:14
  ; CHECK-NEXT: %3:_ KnownBits:???????????????? SignBits:1
  ; CHECK-NEXT: %4:_ KnownBits:???????????????? SignBits:1
    %0:_(<4 x s16>) = COPY $d0
    %1:_(s16) = COPY $h0
    %2:_(s16) = G_CONSTANT i16 3
    %3:_(<4 x s16>) = G_BUILD_VECTOR %1, %2, %2, %1
    %4:_(<4 x s16>) = G_ASHR %0, %3
...
