| # 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>" %s -filetype=null 2>&1 | FileCheck %s |
| |
| --- |
| name: all_knownbits_const_idx |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: @all_knownbits_const_idx |
| ; CHECK-NEXT: %0:_ KnownBits:00000011 SignBits:6 |
| ; CHECK-NEXT: %1:_ KnownBits:00001010 SignBits:4 |
| ; CHECK-NEXT: %2:_ KnownBits:0000?01? SignBits:4 |
| ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:63 |
| ; CHECK-NEXT: %4:_ KnownBits:00001010 SignBits:4 |
| %0:_(i8) = G_CONSTANT i8 3 |
| %1:_(i8) = G_CONSTANT i8 10 |
| %2:_(<2 x i8>) = G_BUILD_VECTOR %0, %1 |
| %idx:_(i64) = G_CONSTANT i64 1 |
| %3:_(i8) = G_EXTRACT_VECTOR_ELT %2, %idx |
| ... |
| --- |
| name: all_knownbits |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: @all_knownbits |
| ; CHECK-NEXT: %0:_ KnownBits:00000011 SignBits:6 |
| ; CHECK-NEXT: %1:_ KnownBits:00001010 SignBits:4 |
| ; CHECK-NEXT: %2:_ KnownBits:0000?01? SignBits:4 |
| ; CHECK-NEXT: %idx:_ KnownBits:???????????????????????????????????????????????????????????????? SignBits:1 |
| ; CHECK-NEXT: %4:_ KnownBits:0000?01? SignBits:4 |
| %0:_(i8) = G_CONSTANT i8 3 |
| %1:_(i8) = G_CONSTANT i8 10 |
| %2:_(<2 x i8>) = G_BUILD_VECTOR %0, %1 |
| %idx:_(i64) = COPY $d0 |
| %3:_(i8) = G_EXTRACT_VECTOR_ELT %2, %idx |
| ... |
| --- |
| name: no_knownbits_const_idx |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: @no_knownbits_const_idx |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:63 |
| ; CHECK-NEXT: %2:_ KnownBits:???????? SignBits:1 |
| %0:_(<2 x i8>) = COPY $h0 |
| %idx:_(i64) = G_CONSTANT i64 1 |
| %1:_(i8) = G_EXTRACT_VECTOR_ELT %0, %idx |
| ... |
| --- |
| name: no_knownbits |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: @no_knownbits |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %idx:_ KnownBits:???????????????????????????????????????????????????????????????? SignBits:1 |
| ; CHECK-NEXT: %2:_ KnownBits:???????? SignBits:1 |
| %0:_(<2 x i8>) = COPY $h0 |
| %idx:_(i64) = COPY $d1 |
| %1:_(i8) = G_EXTRACT_VECTOR_ELT %0, %idx |
| ... |
| --- |
| name: zext_const_idx |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: @zext_const_idx |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %zext0:_ KnownBits:00000000???????? SignBits:8 |
| ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:63 |
| ; CHECK-NEXT: %3:_ KnownBits:00000000???????? SignBits:8 |
| %0:_(<2 x i8>) = COPY $h0 |
| %zext0:_(<2 x i16>) = G_ZEXT %0 |
| %idx:_(i64) = G_CONSTANT i64 1 |
| %1:_(i16) = G_EXTRACT_VECTOR_ELT %zext0, %idx |
| ... |
| --- |
| name: zext |
| body: | |
| bb.0: |
| |
| ; CHECK-LABEL: name: @zext |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %zext0:_ KnownBits:00000000???????? SignBits:8 |
| ; CHECK-NEXT: %idx:_ KnownBits:???????????????????????????????????????????????????????????????? SignBits:1 |
| ; CHECK-NEXT: %3:_ KnownBits:00000000???????? SignBits:8 |
| %0:_(<2 x i8>) = COPY $h0 |
| %zext0:_(<2 x i16>) = G_ZEXT %0 |
| %idx:_(i64) = COPY $d1 |
| %1:_(i16) = G_EXTRACT_VECTOR_ELT %zext0, %idx |
| ... |
| --- |
| name: sext_const_idx |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: @sext_const_idx |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %sext0:_ KnownBits:???????????????? SignBits:9 |
| ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:63 |
| ; CHECK-NEXT: %3:_ KnownBits:???????????????? SignBits:1 |
| %0:_(<2 x i8>) = COPY $h0 |
| %sext0:_(<2 x i16>) = G_SEXT %0 |
| %idx:_(i64) = G_CONSTANT i64 1 |
| %1:_(i16) = G_EXTRACT_VECTOR_ELT %sext0, %idx |
| ... |
| --- |
| name: sext |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: @sext |
| ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1 |
| ; CHECK-NEXT: %sext0:_ KnownBits:???????????????? SignBits:9 |
| ; CHECK-NEXT: %idx:_ KnownBits:???????????????????????????????????????????????????????????????? SignBits:1 |
| ; CHECK-NEXT: %3:_ KnownBits:???????????????? SignBits:1 |
| %0:_(<2 x i8>) = COPY $h0 |
| %sext0:_(<2 x i16>) = G_SEXT %0 |
| %idx:_(i64) = COPY $d1 |
| %1:_(i16) = G_EXTRACT_VECTOR_ELT %sext0, %idx |
| ... |
| --- |
| # Verifies known bit computation bails if return type differs from vector |
| # element type. Without bailing, the 8 lowest bits of %4 would be known. |
| name: bail_on_different_return_type |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: @bail_on_different_return_type |
| ; CHECK-NEXT: %0:_ KnownBits:00000011 SignBits:6 |
| ; CHECK-NEXT: %1:_ KnownBits:00001010 SignBits:4 |
| ; CHECK-NEXT: %2:_ KnownBits:0000?01? SignBits:4 |
| ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:63 |
| ; CHECK-NEXT: %4:_ KnownBits:???????????????? SignBits:1 |
| %0:_(i8) = G_CONSTANT i8 3 |
| %1:_(i8) = G_CONSTANT i8 10 |
| %2:_(<2 x i8>) = G_BUILD_VECTOR %0, %1 |
| %idx:_(i64) = G_CONSTANT i64 1 |
| %3:_(i16) = G_EXTRACT_VECTOR_ELT %2, %idx |