# 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:            Scalar
body:             |
  bb.1:
  ; CHECK-LABEL: name: @Scalar
  ; CHECK-NEXT: %copy_x0:_ KnownBits:???????????????? SignBits:1
  ; CHECK-NEXT: %maskf:_ KnownBits:0000000000001111 SignBits:12
  ; CHECK-NEXT: %x0_x1:_ KnownBits:0000000000001111 SignBits:12
  ; CHECK-NEXT: %and:_ KnownBits:000000000000???? SignBits:12
  ; CHECK-NEXT: %x0_0:_ KnownBits:000000000000???? SignBits:12
  ; CHECK-NEXT: %x0_1:_ KnownBits:000000000000???? SignBits:12
  ; CHECK-NEXT: %result:_ KnownBits:000000000000???? SignBits:12
   %copy_x0:_(<2 x s16>) = COPY $w0
   %maskf:_(s16) = G_CONSTANT i16 15
   %x0_x1:_(<2 x s16>) = G_BUILD_VECTOR %maskf, %maskf
   %and:_(<2 x s16>) = G_AND %copy_x0, %x0_x1
   %x0_0:_(s16), %x0_1:_(s16) = G_UNMERGE_VALUES %and
   %result:_(s16) = COPY %x0_0
...
---
name:            Vector
body:             |
  bb.1:
  ; CHECK-LABEL: name: @Vector
  ; CHECK-NEXT: %copy_x0:_ KnownBits:???????? SignBits:1
  ; CHECK-NEXT: %maskff:_ KnownBits:11111111 SignBits:8
  ; CHECK-NEXT: %maskf:_ KnownBits:00001111 SignBits:4
  ; CHECK-NEXT: %x0_x1:_ KnownBits:????1111 SignBits:4
  ; CHECK-NEXT: %and:_ KnownBits:???????? SignBits:1
  ; CHECK-NEXT: %x0_0:_ KnownBits:0000???? SignBits:4
  ; CHECK-NEXT: %x0_1:_ KnownBits:???????? SignBits:1
  ; CHECK-NEXT: %result1:_ KnownBits:0000???? SignBits:4
  ; CHECK-NEXT: %result2:_ KnownBits:???????? SignBits:1
   %copy_x0:_(<4 x s8>) = COPY $w0
   %maskff:_(s8) = G_CONSTANT i8 255
   %maskf:_(s8) = G_CONSTANT i8 15
   %x0_x1:_(<4 x s8>) = G_BUILD_VECTOR %maskf, %maskf, %maskff, %maskff
   %and:_(<4 x s8>) = G_AND %copy_x0, %x0_x1
   %x0_0:_(<2 x s8>), %x0_1:_(<2 x s8>) = G_UNMERGE_VALUES %and
   %result1:_(<2 x s8>) = COPY %x0_0
   %result2:_(<2 x s8>) = COPY %x0_1
...
