brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.4 KiB · 7a6e07d Raw
254 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_givaluetracking_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -passes='print<gisel-value-tracking>' %s -filetype=null 2>&1 | FileCheck %s3 4---5name: test_s_bfe_u32_constants6body: |7  bb.0:8  ; Extract [12:16)9  ; CHECK-LABEL: name: @test_s_bfe_u32_constants10  ; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:1611  ; CHECK-NEXT: %bfe:sgpr_32 KnownBits:00000000000000000000000000001111 SignBits:2812    %cst:sgpr_32(s32) = G_CONSTANT i32 6553513    %bfe:sgpr_32(s32) = S_BFE_U32 %cst, 262156, implicit-def $scc14    $sgpr0 = COPY %bfe15...16---17name: test_s_bfe_i32_constants18body: |19  bb.0:20  ; Extract [12:16)21  ; CHECK-LABEL: name: @test_s_bfe_i32_constants22  ; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:1623  ; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111111111 SignBits:3224    %cst:sgpr_32(s32) = G_CONSTANT i32 6553525    %bfe:sgpr_32(s32) = S_BFE_I32 %cst, 262156, implicit-def $scc26    $sgpr0 = COPY %bfe27...28---29name: test_s_bfe_u64_constants30body: |31  bb.0:32  ; Extract [12:16)33  ; CHECK-LABEL: name: @test_s_bfe_u64_constants34  ; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:4835  ; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000000000000001111 SignBits:6036    %cst:sgpr_64(s64) = G_CONSTANT i64 6553537    %bfe:sgpr_64(s64) = S_BFE_U64 %cst, 262156, implicit-def $scc38    $sgpr0_sgpr1 = COPY %bfe39...40---41name: test_s_bfe_i64_constants42body: |43  bb.0:44  ; Extract [12:16)45  ; CHECK-LABEL: name: @test_s_bfe_i64_constants46  ; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:4847  ; CHECK-NEXT: %bfe:sgpr_64 KnownBits:1111111111111111111111111111111111111111111111111111111111111111 SignBits:6448    %cst:sgpr_64(s64) = G_CONSTANT i64 6553549    %bfe:sgpr_64(s64) = S_BFE_I64 %cst, 262156, implicit-def $scc50    $sgpr0_sgpr1 = COPY %bfe51...52---53name: test_s_bfe_u32_middle_bits_unknown54body: |55  bb.0:56  ; Extract [8:16) but the middle 4 bits are ????57    liveins: $sgpr058 59  ; CHECK-LABEL: name: @test_s_bfe_u32_middle_bits_unknown60  ; CHECK-NEXT: %input:sgpr_32 KnownBits:???????????????????????????????? SignBits:161  ; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001100001111111111 SignBits:1662  ; CHECK-NEXT: %mask:sgpr_32 KnownBits:00000000000000000011110000000000 SignBits:1863  ; CHECK-NEXT: %masked_input:sgpr_32 KnownBits:000000000000000000????0000000000 SignBits:1864  ; CHECK-NEXT: %merged:sgpr_32 KnownBits:000000000000000011????1111111111 SignBits:1665  ; CHECK-NEXT: %bfe:sgpr_32 KnownBits:00000000000000000000000011????11 SignBits:2466    %input:sgpr_32(s32) = COPY $sgpr067    %cst:sgpr_32(s32) = G_CONSTANT i32 5017568    %mask:sgpr_32(s32) = G_CONSTANT i32 1536069    %masked_input:sgpr_32(s32) = G_AND %input, %mask70    %merged:sgpr_32(s32) = G_OR %masked_input, %cst71    %bfe:sgpr_32(s32) = S_BFE_U32 %merged, 524296, implicit-def $scc72    $sgpr0 = COPY %bfe73...74---75name: test_s_bfe_i32_middle_bits_unknown76body: |77  bb.0:78  ; Extract [8:16) but the middle 4 bits are ????79    liveins: $sgpr080 81  ; CHECK-LABEL: name: @test_s_bfe_i32_middle_bits_unknown82  ; CHECK-NEXT: %input:sgpr_32 KnownBits:???????????????????????????????? SignBits:183  ; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001100001111111111 SignBits:1684  ; CHECK-NEXT: %mask:sgpr_32 KnownBits:00000000000000000011110000000000 SignBits:1885  ; CHECK-NEXT: %masked_input:sgpr_32 KnownBits:000000000000000000????0000000000 SignBits:1886  ; CHECK-NEXT: %merged:sgpr_32 KnownBits:000000000000000011????1111111111 SignBits:1687  ; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111????11 SignBits:2688    %input:sgpr_32(s32) = COPY $sgpr089    %cst:sgpr_32(s32) = G_CONSTANT i32 5017590    %mask:sgpr_32(s32) = G_CONSTANT i32 1536091    %masked_input:sgpr_32(s32) = G_AND %input, %mask92    %merged:sgpr_32(s32) = G_OR %masked_input, %cst93    %bfe:sgpr_32(s32) = S_BFE_I32 %merged, 524296, implicit-def $scc94    $sgpr0 = COPY %bfe95...96---97name: test_s_bfe_u64_middle_bits_unknown98body: |99  bb.0:100  ; Extract [8:16) but the middle 4 bits are ????101    liveins: $sgpr0_sgpr1102 103  ; CHECK-LABEL: name: @test_s_bfe_u64_middle_bits_unknown104  ; CHECK-NEXT: %input:sgpr_64 KnownBits:???????????????????????????????????????????????????????????????? SignBits:1105  ; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001100001111111111 SignBits:48106  ; CHECK-NEXT: %mask:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000011110000000000 SignBits:50107  ; CHECK-NEXT: %masked_input:sgpr_64 KnownBits:00000000000000000000000000000000000000000000000000????0000000000 SignBits:50108  ; CHECK-NEXT: %merged:sgpr_64 KnownBits:00000000000000000000000000000000000000000000000011????1111111111 SignBits:48109  ; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000000000011????11 SignBits:56110    %input:sgpr_64(s64) = COPY $sgpr0_sgpr1111    %cst:sgpr_64(s64) = G_CONSTANT i64 50175112    %mask:sgpr_64(s64) = G_CONSTANT i64 15360113    %masked_input:sgpr_64(s64) = G_AND %input, %mask114    %merged:sgpr_64(s64) = G_OR %masked_input, %cst115    %bfe:sgpr_64(s64) = S_BFE_U64 %merged, 524296, implicit-def $scc116    $sgpr0_sgpr1 = COPY %bfe117...118---119name: test_s_bfe_i64_middle_bits_unknown120body: |121  bb.0:122  ; Extract [8:16) but the middle 4 bits are ????123    liveins: $sgpr0_sgpr1124 125  ; CHECK-LABEL: name: @test_s_bfe_i64_middle_bits_unknown126  ; CHECK-NEXT: %input:sgpr_64 KnownBits:???????????????????????????????????????????????????????????????? SignBits:1127  ; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001100001111111111 SignBits:48128  ; CHECK-NEXT: %mask:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000011110000000000 SignBits:50129  ; CHECK-NEXT: %masked_input:sgpr_64 KnownBits:00000000000000000000000000000000000000000000000000????0000000000 SignBits:50130  ; CHECK-NEXT: %merged:sgpr_64 KnownBits:00000000000000000000000000000000000000000000000011????1111111111 SignBits:48131  ; CHECK-NEXT: %bfe:sgpr_64 KnownBits:1111111111111111111111111111111111111111111111111111111111????11 SignBits:58132    %input:sgpr_64(s64) = COPY $sgpr0_sgpr1133    %cst:sgpr_64(s64) = G_CONSTANT i64 50175134    %mask:sgpr_64(s64) = G_CONSTANT i64 15360135    %masked_input:sgpr_64(s64) = G_AND %input, %mask136    %merged:sgpr_64(s64) = G_OR %masked_input, %cst137    %bfe:sgpr_64(s64) = S_BFE_I64 %merged, 524296, implicit-def $scc138    $sgpr0_sgpr1 = COPY %bfe139...140---141name: test_s_bfe_i32_g_constants142body: |143  bb.0:144  ; Extract [12:16)145  ; CHECK-LABEL: name: @test_s_bfe_i32_g_constants146  ; CHECK-NEXT: %src0:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16147  ; CHECK-NEXT: %src1:sgpr_32 KnownBits:00000000000001000000000000001100 SignBits:13148  ; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111111111 SignBits:32149    %src0:sgpr_32(s32) = G_CONSTANT i32 65535150    %src1:sgpr_32(s32) = G_CONSTANT i32 262156151    %bfe:sgpr_32(s32) = S_BFE_I32 %src0, %src1, implicit-def $scc152    $sgpr0 = COPY %bfe153...154---155name: test_s_bfe_u64_g_constants156body: |157  bb.0:158  ; Extract [12:16)159  ; CHECK-LABEL: name: @test_s_bfe_u64_g_constants160  ; CHECK-NEXT: %src0:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:48161  ; CHECK-NEXT: %src1:sgpr_32 KnownBits:00000000000001000000000000001100 SignBits:13162  ; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000000000000001111 SignBits:60163    %src0:sgpr_64(s64) = G_CONSTANT i64 65535164    %src1:sgpr_32(s32) = G_CONSTANT i32 262156165    %bfe:sgpr_64(s64) = S_BFE_U64 %src0, %src1, implicit-def $scc166    $sgpr0_sgpr1 = COPY %bfe167...168---169name: test_s_bfe_i32_g_constants_lookthrough170body: |171  bb.0:172  ; Extract [12:16)173  ; CHECK-LABEL: name: @test_s_bfe_i32_g_constants_lookthrough174  ; CHECK-NEXT: %src0:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16175  ; CHECK-NEXT: %src1:sgpr_32 KnownBits:000001000000000000001100 SignBits:5176  ; CHECK-NEXT: %src1_ext:sgpr_32 KnownBits:00000000000001000000000000001100 SignBits:13177  ; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111111111 SignBits:32178    %src0:sgpr_32(s32) = G_CONSTANT i32 65535179    %src1:sgpr_32(s24) = G_CONSTANT i24 262156180    %src1_ext:sgpr_32(s32) = G_ZEXT %src1181    %bfe:sgpr_32(s32) = S_BFE_I32 %src0, %src1_ext, implicit-def $scc182    $sgpr0 = COPY %bfe183...184---185name: test_s_bfe_u64_g_constants_lookthrough186body: |187  bb.0:188  ; Extract [12:16)189  ; CHECK-LABEL: name: @test_s_bfe_u64_g_constants_lookthrough190  ; CHECK-NEXT: %src0:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:48191  ; CHECK-NEXT: %src1:sgpr_32 KnownBits:000001000000000000001100 SignBits:5192  ; CHECK-NEXT: %src1_ext:sgpr_32 KnownBits:00000000000001000000000000001100 SignBits:13193  ; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000000000000001111 SignBits:60194    %src0:sgpr_64(s64) = G_CONSTANT i64 65535195    %src1:sgpr_32(s24) = G_CONSTANT i24 262156196    %src1_ext:sgpr_32(s32) = G_ZEXT %src1197    %bfe:sgpr_64(s64) = S_BFE_U64 %src0, %src1, implicit-def $scc198    $sgpr0_sgpr1 = COPY %bfe199...200---201name: test_s_bfe_u32_trash_bits202body: |203  bb.0:204  ; Extract [12:16)205  ; Check that the 6th bit is ignored for u32. The lower 6 bits are206  ; 101100 but we should mask out the first 1 for the 32 bit version.207  ; CHECK-LABEL: name: @test_s_bfe_u32_trash_bits208  ; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16209  ; CHECK-NEXT: %bfe:sgpr_32 KnownBits:00000000000000000000000000001111 SignBits:28210    %cst:sgpr_32(s32) = G_CONSTANT i32 65535211    %bfe:sgpr_32(s32) = S_BFE_U32 %cst, 262252, implicit-def $scc212    $sgpr0 = COPY %bfe213...214---215name: test_s_bfe_i32_trash_bits216body: |217  bb.0:218  ; Extract [12:16)219  ; Check that the 6th bit is ignored for i32. The lower 6 bits are220  ; 101100 but we should mask out the first 1 for the 32 bit version.221  ; CHECK-LABEL: name: @test_s_bfe_i32_trash_bits222  ; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16223  ; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111111111 SignBits:32224    %cst:sgpr_32(s32) = G_CONSTANT i32 65535225    %bfe:sgpr_32(s32) = S_BFE_I32 %cst, 262252, implicit-def $scc226    $sgpr0 = COPY %bfe227...228---229name: test_s_bfe_u64_constants_sixth_bit230body: |231  bb.0:232  ; Extract [32:48)233  ; Check we correctly read 6 bits for the width on 64 bit BFEs.234  ; CHECK-LABEL: name: @test_s_bfe_u64_constants_sixth_bit235  ; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000111111111111111100000000000000000000000000000000 SignBits:16236  ; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:48237    %cst:sgpr_64(s64) = G_CONSTANT i64 281470681743360238    %bfe:sgpr_64(s64) = S_BFE_U64 %cst, 1048608, implicit-def $scc239    $sgpr0_sgpr1 = COPY %bfe240...241---242name: test_s_bfe_i64_constants_sixth_bit243body: |244  bb.0:245  ; Extract [32:48)246  ; Check we correctly read 6 bits for the width on 64 bit BFEs.247  ; CHECK-LABEL: name: @test_s_bfe_i64_constants_sixth_bit248  ; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000111111111111111100000000000000000000000000000000 SignBits:16249  ; CHECK-NEXT: %bfe:sgpr_64 KnownBits:1111111111111111111111111111111111111111111111111111111111111111 SignBits:64250    %cst:sgpr_64(s64) = G_CONSTANT i64 281470681743360251    %bfe:sgpr_64(s64) = S_BFE_I64 %cst, 1048608, implicit-def $scc252    $sgpr0_sgpr1 = COPY %bfe253...254