134 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_givaluetracking_test_checks.py UTC_ARGS: --version 62# RUN: llc -mtriple aarch64 -passes="print<gisel-value-tracking>" %s -filetype=null 2>&1 | FileCheck %s3 4---5name: all_knownbits_const_idx6body: |7 bb.0:8 ; CHECK-LABEL: name: @all_knownbits_const_idx9 ; CHECK-NEXT: %0:_ KnownBits:00000011 SignBits:610 ; CHECK-NEXT: %1:_ KnownBits:00001010 SignBits:411 ; CHECK-NEXT: %2:_ KnownBits:0000?01? SignBits:412 ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:6313 ; CHECK-NEXT: %4:_ KnownBits:00001010 SignBits:414 %0:_(s8) = G_CONSTANT i8 315 %1:_(s8) = G_CONSTANT i8 1016 %2:_(<2 x s8>) = G_BUILD_VECTOR %0, %117 %idx:_(s64) = G_CONSTANT i64 118 %3:_(s8) = G_EXTRACT_VECTOR_ELT %2, %idx19...20---21name: all_knownbits22body: |23 bb.0:24 ; CHECK-LABEL: name: @all_knownbits25 ; CHECK-NEXT: %0:_ KnownBits:00000011 SignBits:626 ; CHECK-NEXT: %1:_ KnownBits:00001010 SignBits:427 ; CHECK-NEXT: %2:_ KnownBits:0000?01? SignBits:428 ; CHECK-NEXT: %idx:_ KnownBits:???????????????????????????????????????????????????????????????? SignBits:129 ; CHECK-NEXT: %4:_ KnownBits:0000?01? SignBits:430 %0:_(s8) = G_CONSTANT i8 331 %1:_(s8) = G_CONSTANT i8 1032 %2:_(<2 x s8>) = G_BUILD_VECTOR %0, %133 %idx:_(s64) = COPY $d034 %3:_(s8) = G_EXTRACT_VECTOR_ELT %2, %idx35...36---37name: no_knownbits_const_idx38body: |39 bb.0:40 ; CHECK-LABEL: name: @no_knownbits_const_idx41 ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:142 ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:6343 ; CHECK-NEXT: %2:_ KnownBits:???????? SignBits:144 %0:_(<2 x s8>) = COPY $h045 %idx:_(s64) = G_CONSTANT i64 146 %1:_(s8) = G_EXTRACT_VECTOR_ELT %0, %idx47...48---49name: no_knownbits50body: |51 bb.0:52 ; CHECK-LABEL: name: @no_knownbits53 ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:154 ; CHECK-NEXT: %idx:_ KnownBits:???????????????????????????????????????????????????????????????? SignBits:155 ; CHECK-NEXT: %2:_ KnownBits:???????? SignBits:156 %0:_(<2 x s8>) = COPY $h057 %idx:_(s64) = COPY $d158 %1:_(s8) = G_EXTRACT_VECTOR_ELT %0, %idx59...60---61name: zext_const_idx62body: |63 bb.0:64 ; CHECK-LABEL: name: @zext_const_idx65 ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:166 ; CHECK-NEXT: %zext0:_ KnownBits:00000000???????? SignBits:867 ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:6368 ; CHECK-NEXT: %3:_ KnownBits:00000000???????? SignBits:869 %0:_(<2 x s8>) = COPY $h070 %zext0:_(<2 x s16>) = G_ZEXT %071 %idx:_(s64) = G_CONSTANT i64 172 %1:_(s16) = G_EXTRACT_VECTOR_ELT %zext0, %idx73...74---75name: zext76body: |77 bb.0:78 79 ; CHECK-LABEL: name: @zext80 ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:181 ; CHECK-NEXT: %zext0:_ KnownBits:00000000???????? SignBits:882 ; CHECK-NEXT: %idx:_ KnownBits:???????????????????????????????????????????????????????????????? SignBits:183 ; CHECK-NEXT: %3:_ KnownBits:00000000???????? SignBits:884 %0:_(<2 x s8>) = COPY $h085 %zext0:_(<2 x s16>) = G_ZEXT %086 %idx:_(s64) = COPY $d187 %1:_(s16) = G_EXTRACT_VECTOR_ELT %zext0, %idx88...89---90name: sext_const_idx91body: |92 bb.0:93 ; CHECK-LABEL: name: @sext_const_idx94 ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:195 ; CHECK-NEXT: %sext0:_ KnownBits:???????????????? SignBits:996 ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:6397 ; CHECK-NEXT: %3:_ KnownBits:???????????????? SignBits:198 %0:_(<2 x s8>) = COPY $h099 %sext0:_(<2 x s16>) = G_SEXT %0100 %idx:_(s64) = G_CONSTANT i64 1101 %1:_(s16) = G_EXTRACT_VECTOR_ELT %sext0, %idx102...103---104name: sext105body: |106 bb.0:107 ; CHECK-LABEL: name: @sext108 ; CHECK-NEXT: %0:_ KnownBits:???????? SignBits:1109 ; CHECK-NEXT: %sext0:_ KnownBits:???????????????? SignBits:9110 ; CHECK-NEXT: %idx:_ KnownBits:???????????????????????????????????????????????????????????????? SignBits:1111 ; CHECK-NEXT: %3:_ KnownBits:???????????????? SignBits:1112 %0:_(<2 x s8>) = COPY $h0113 %sext0:_(<2 x s16>) = G_SEXT %0114 %idx:_(s64) = COPY $d1115 %1:_(s16) = G_EXTRACT_VECTOR_ELT %sext0, %idx116...117---118# Verifies known bit computation bails if return type differs from vector119# element type. Without bailing, the 8 lowest bits of %4 would be known.120name: bail_on_different_return_type121body: |122 bb.0:123 ; CHECK-LABEL: name: @bail_on_different_return_type124 ; CHECK-NEXT: %0:_ KnownBits:00000011 SignBits:6125 ; CHECK-NEXT: %1:_ KnownBits:00001010 SignBits:4126 ; CHECK-NEXT: %2:_ KnownBits:0000?01? SignBits:4127 ; CHECK-NEXT: %idx:_ KnownBits:0000000000000000000000000000000000000000000000000000000000000001 SignBits:63128 ; CHECK-NEXT: %4:_ KnownBits:???????????????? SignBits:1129 %0:_(s8) = G_CONSTANT i8 3130 %1:_(s8) = G_CONSTANT i8 10131 %2:_(<2 x s8>) = G_BUILD_VECTOR %0, %1132 %idx:_(s64) = G_CONSTANT i64 1133 %3:_(s16) = G_EXTRACT_VECTOR_ELT %2, %idx134