# NOTE: Assertions have been autogenerated by utils/update_givaluetracking_test_checks.py UTC_ARGS: --version 6 # RUN: llc -mtriple=aarch64 -passes="print" -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:_(s8) = COPY $b0 %1:_(s8) = G_CONSTANT i8 48 %2:_(s8) = G_CONSTANT i8 8 %3:_(s8) = G_AND %0, %1 %4:_(s8) = G_OR %3, %2 %5:_(s8) = 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:_(s8) = COPY $b0 %1:_(s16) = 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:_(s16) = COPY $h0 %1:_(s16) = 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:_(s32) = COPY $s0 %1:_(s16) = 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:_(s8) = COPY $b0 %1:_(s8) = G_CONSTANT i8 4 %2:_(s8) = G_AND %0, %1 %3:_(s8) = 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:_(s16) = COPY $h0 %1:_(s16) = G_CONSTANT i16 64 %2:_(s16) = G_AND %0, %1 %3:_(s16) = 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:_(s8) = G_CONSTANT i8 0 %1:_(s8) = 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:_(s16) = G_CONSTANT i16 0 %1:_(s16) = 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:_(s16) = G_CONSTANT i16 0 %1:_(<4 x s16>) = G_BUILD_VECTOR %0, %0, %0, %0 %3:_(<4 x s16>) = 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:_(s16) = COPY $h0 %1:_(s16) = G_CONSTANT i16 8 %2:_(s16) = G_ASHR %0, %1 %3:_(s16) = COPY $h1 %4:_(<4 x s16>) = G_BUILD_VECTOR %2, %3, %2, %3 %5:_(<4 x s16>) = 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:_(s16) = COPY $h0 %1:_(s16) = G_CONSTANT i16 8 %2:_(s16) = G_ASHR %0, %1 %3:_(s16) = COPY $h1 %4:_(s16) = G_CONSTANT i16 10 %5:_(s16) = G_ASHR %4, %5 %6:_(<4 x s16>) = G_BUILD_VECTOR %2, %5, %2, %4 %7:_(<4 x s16>) = 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:_(s32) = COPY $s0 %1:_(s32) = G_CONSTANT i32 16 %2:_(s32) = G_ASHR %0, %1 %3:_(s32) = 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:_(s32) = COPY $s0 %1:_(s32) = G_CONSTANT i32 15 %2:_(s32) = G_ASHR %0, %1 %3:_(s32) = G_CTLS %2 ...