CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
254 lines
11 KiB
YAML
254 lines
11 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_givaluetracking_test_checks.py UTC_ARGS: --version 5
|
|
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -passes='print<gisel-value-tracking>' %s -filetype=null 2>&1 | FileCheck %s
|
|
|
|
---
|
|
name: test_s_bfe_u32_constants
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; CHECK-LABEL: name: @test_s_bfe_u32_constants
|
|
; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16
|
|
; CHECK-NEXT: %bfe:sgpr_32 KnownBits:00000000000000000000000000001111 SignBits:28
|
|
%cst:sgpr_32(s32) = G_CONSTANT i32 65535
|
|
%bfe:sgpr_32(s32) = S_BFE_U32 %cst, 262156, implicit-def $scc
|
|
$sgpr0 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_i32_constants
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; CHECK-LABEL: name: @test_s_bfe_i32_constants
|
|
; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16
|
|
; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111111111 SignBits:32
|
|
%cst:sgpr_32(s32) = G_CONSTANT i32 65535
|
|
%bfe:sgpr_32(s32) = S_BFE_I32 %cst, 262156, implicit-def $scc
|
|
$sgpr0 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_u64_constants
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; CHECK-LABEL: name: @test_s_bfe_u64_constants
|
|
; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:48
|
|
; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000000000000001111 SignBits:60
|
|
%cst:sgpr_64(s64) = G_CONSTANT i64 65535
|
|
%bfe:sgpr_64(s64) = S_BFE_U64 %cst, 262156, implicit-def $scc
|
|
$sgpr0_sgpr1 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_i64_constants
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; CHECK-LABEL: name: @test_s_bfe_i64_constants
|
|
; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:48
|
|
; CHECK-NEXT: %bfe:sgpr_64 KnownBits:1111111111111111111111111111111111111111111111111111111111111111 SignBits:64
|
|
%cst:sgpr_64(s64) = G_CONSTANT i64 65535
|
|
%bfe:sgpr_64(s64) = S_BFE_I64 %cst, 262156, implicit-def $scc
|
|
$sgpr0_sgpr1 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_u32_middle_bits_unknown
|
|
body: |
|
|
bb.0:
|
|
; Extract [8:16) but the middle 4 bits are ????
|
|
liveins: $sgpr0
|
|
|
|
; CHECK-LABEL: name: @test_s_bfe_u32_middle_bits_unknown
|
|
; CHECK-NEXT: %input:sgpr_32 KnownBits:???????????????????????????????? SignBits:1
|
|
; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001100001111111111 SignBits:16
|
|
; CHECK-NEXT: %mask:sgpr_32 KnownBits:00000000000000000011110000000000 SignBits:18
|
|
; CHECK-NEXT: %masked_input:sgpr_32 KnownBits:000000000000000000????0000000000 SignBits:18
|
|
; CHECK-NEXT: %merged:sgpr_32 KnownBits:000000000000000011????1111111111 SignBits:16
|
|
; CHECK-NEXT: %bfe:sgpr_32 KnownBits:00000000000000000000000011????11 SignBits:24
|
|
%input:sgpr_32(s32) = COPY $sgpr0
|
|
%cst:sgpr_32(s32) = G_CONSTANT i32 50175
|
|
%mask:sgpr_32(s32) = G_CONSTANT i32 15360
|
|
%masked_input:sgpr_32(s32) = G_AND %input, %mask
|
|
%merged:sgpr_32(s32) = G_OR %masked_input, %cst
|
|
%bfe:sgpr_32(s32) = S_BFE_U32 %merged, 524296, implicit-def $scc
|
|
$sgpr0 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_i32_middle_bits_unknown
|
|
body: |
|
|
bb.0:
|
|
; Extract [8:16) but the middle 4 bits are ????
|
|
liveins: $sgpr0
|
|
|
|
; CHECK-LABEL: name: @test_s_bfe_i32_middle_bits_unknown
|
|
; CHECK-NEXT: %input:sgpr_32 KnownBits:???????????????????????????????? SignBits:1
|
|
; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001100001111111111 SignBits:16
|
|
; CHECK-NEXT: %mask:sgpr_32 KnownBits:00000000000000000011110000000000 SignBits:18
|
|
; CHECK-NEXT: %masked_input:sgpr_32 KnownBits:000000000000000000????0000000000 SignBits:18
|
|
; CHECK-NEXT: %merged:sgpr_32 KnownBits:000000000000000011????1111111111 SignBits:16
|
|
; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111????11 SignBits:26
|
|
%input:sgpr_32(s32) = COPY $sgpr0
|
|
%cst:sgpr_32(s32) = G_CONSTANT i32 50175
|
|
%mask:sgpr_32(s32) = G_CONSTANT i32 15360
|
|
%masked_input:sgpr_32(s32) = G_AND %input, %mask
|
|
%merged:sgpr_32(s32) = G_OR %masked_input, %cst
|
|
%bfe:sgpr_32(s32) = S_BFE_I32 %merged, 524296, implicit-def $scc
|
|
$sgpr0 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_u64_middle_bits_unknown
|
|
body: |
|
|
bb.0:
|
|
; Extract [8:16) but the middle 4 bits are ????
|
|
liveins: $sgpr0_sgpr1
|
|
|
|
; CHECK-LABEL: name: @test_s_bfe_u64_middle_bits_unknown
|
|
; CHECK-NEXT: %input:sgpr_64 KnownBits:???????????????????????????????????????????????????????????????? SignBits:1
|
|
; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001100001111111111 SignBits:48
|
|
; CHECK-NEXT: %mask:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000011110000000000 SignBits:50
|
|
; CHECK-NEXT: %masked_input:sgpr_64 KnownBits:00000000000000000000000000000000000000000000000000????0000000000 SignBits:50
|
|
; CHECK-NEXT: %merged:sgpr_64 KnownBits:00000000000000000000000000000000000000000000000011????1111111111 SignBits:48
|
|
; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000000000011????11 SignBits:56
|
|
%input:sgpr_64(s64) = COPY $sgpr0_sgpr1
|
|
%cst:sgpr_64(s64) = G_CONSTANT i64 50175
|
|
%mask:sgpr_64(s64) = G_CONSTANT i64 15360
|
|
%masked_input:sgpr_64(s64) = G_AND %input, %mask
|
|
%merged:sgpr_64(s64) = G_OR %masked_input, %cst
|
|
%bfe:sgpr_64(s64) = S_BFE_U64 %merged, 524296, implicit-def $scc
|
|
$sgpr0_sgpr1 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_i64_middle_bits_unknown
|
|
body: |
|
|
bb.0:
|
|
; Extract [8:16) but the middle 4 bits are ????
|
|
liveins: $sgpr0_sgpr1
|
|
|
|
; CHECK-LABEL: name: @test_s_bfe_i64_middle_bits_unknown
|
|
; CHECK-NEXT: %input:sgpr_64 KnownBits:???????????????????????????????????????????????????????????????? SignBits:1
|
|
; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001100001111111111 SignBits:48
|
|
; CHECK-NEXT: %mask:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000011110000000000 SignBits:50
|
|
; CHECK-NEXT: %masked_input:sgpr_64 KnownBits:00000000000000000000000000000000000000000000000000????0000000000 SignBits:50
|
|
; CHECK-NEXT: %merged:sgpr_64 KnownBits:00000000000000000000000000000000000000000000000011????1111111111 SignBits:48
|
|
; CHECK-NEXT: %bfe:sgpr_64 KnownBits:1111111111111111111111111111111111111111111111111111111111????11 SignBits:58
|
|
%input:sgpr_64(s64) = COPY $sgpr0_sgpr1
|
|
%cst:sgpr_64(s64) = G_CONSTANT i64 50175
|
|
%mask:sgpr_64(s64) = G_CONSTANT i64 15360
|
|
%masked_input:sgpr_64(s64) = G_AND %input, %mask
|
|
%merged:sgpr_64(s64) = G_OR %masked_input, %cst
|
|
%bfe:sgpr_64(s64) = S_BFE_I64 %merged, 524296, implicit-def $scc
|
|
$sgpr0_sgpr1 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_i32_g_constants
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; CHECK-LABEL: name: @test_s_bfe_i32_g_constants
|
|
; CHECK-NEXT: %src0:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16
|
|
; CHECK-NEXT: %src1:sgpr_32 KnownBits:00000000000001000000000000001100 SignBits:13
|
|
; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111111111 SignBits:32
|
|
%src0:sgpr_32(s32) = G_CONSTANT i32 65535
|
|
%src1:sgpr_32(s32) = G_CONSTANT i32 262156
|
|
%bfe:sgpr_32(s32) = S_BFE_I32 %src0, %src1, implicit-def $scc
|
|
$sgpr0 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_u64_g_constants
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; CHECK-LABEL: name: @test_s_bfe_u64_g_constants
|
|
; CHECK-NEXT: %src0:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:48
|
|
; CHECK-NEXT: %src1:sgpr_32 KnownBits:00000000000001000000000000001100 SignBits:13
|
|
; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000000000000001111 SignBits:60
|
|
%src0:sgpr_64(s64) = G_CONSTANT i64 65535
|
|
%src1:sgpr_32(s32) = G_CONSTANT i32 262156
|
|
%bfe:sgpr_64(s64) = S_BFE_U64 %src0, %src1, implicit-def $scc
|
|
$sgpr0_sgpr1 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_i32_g_constants_lookthrough
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; CHECK-LABEL: name: @test_s_bfe_i32_g_constants_lookthrough
|
|
; CHECK-NEXT: %src0:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16
|
|
; CHECK-NEXT: %src1:sgpr_32 KnownBits:000001000000000000001100 SignBits:5
|
|
; CHECK-NEXT: %src1_ext:sgpr_32 KnownBits:00000000000001000000000000001100 SignBits:13
|
|
; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111111111 SignBits:32
|
|
%src0:sgpr_32(s32) = G_CONSTANT i32 65535
|
|
%src1:sgpr_32(s24) = G_CONSTANT i24 262156
|
|
%src1_ext:sgpr_32(s32) = G_ZEXT %src1
|
|
%bfe:sgpr_32(s32) = S_BFE_I32 %src0, %src1_ext, implicit-def $scc
|
|
$sgpr0 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_u64_g_constants_lookthrough
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; CHECK-LABEL: name: @test_s_bfe_u64_g_constants_lookthrough
|
|
; CHECK-NEXT: %src0:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:48
|
|
; CHECK-NEXT: %src1:sgpr_32 KnownBits:000001000000000000001100 SignBits:5
|
|
; CHECK-NEXT: %src1_ext:sgpr_32 KnownBits:00000000000001000000000000001100 SignBits:13
|
|
; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000000000000000001111 SignBits:60
|
|
%src0:sgpr_64(s64) = G_CONSTANT i64 65535
|
|
%src1:sgpr_32(s24) = G_CONSTANT i24 262156
|
|
%src1_ext:sgpr_32(s32) = G_ZEXT %src1
|
|
%bfe:sgpr_64(s64) = S_BFE_U64 %src0, %src1, implicit-def $scc
|
|
$sgpr0_sgpr1 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_u32_trash_bits
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; Check that the 6th bit is ignored for u32. The lower 6 bits are
|
|
; 101100 but we should mask out the first 1 for the 32 bit version.
|
|
; CHECK-LABEL: name: @test_s_bfe_u32_trash_bits
|
|
; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16
|
|
; CHECK-NEXT: %bfe:sgpr_32 KnownBits:00000000000000000000000000001111 SignBits:28
|
|
%cst:sgpr_32(s32) = G_CONSTANT i32 65535
|
|
%bfe:sgpr_32(s32) = S_BFE_U32 %cst, 262252, implicit-def $scc
|
|
$sgpr0 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_i32_trash_bits
|
|
body: |
|
|
bb.0:
|
|
; Extract [12:16)
|
|
; Check that the 6th bit is ignored for i32. The lower 6 bits are
|
|
; 101100 but we should mask out the first 1 for the 32 bit version.
|
|
; CHECK-LABEL: name: @test_s_bfe_i32_trash_bits
|
|
; CHECK-NEXT: %cst:sgpr_32 KnownBits:00000000000000001111111111111111 SignBits:16
|
|
; CHECK-NEXT: %bfe:sgpr_32 KnownBits:11111111111111111111111111111111 SignBits:32
|
|
%cst:sgpr_32(s32) = G_CONSTANT i32 65535
|
|
%bfe:sgpr_32(s32) = S_BFE_I32 %cst, 262252, implicit-def $scc
|
|
$sgpr0 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_u64_constants_sixth_bit
|
|
body: |
|
|
bb.0:
|
|
; Extract [32:48)
|
|
; Check we correctly read 6 bits for the width on 64 bit BFEs.
|
|
; CHECK-LABEL: name: @test_s_bfe_u64_constants_sixth_bit
|
|
; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000111111111111111100000000000000000000000000000000 SignBits:16
|
|
; CHECK-NEXT: %bfe:sgpr_64 KnownBits:0000000000000000000000000000000000000000000000001111111111111111 SignBits:48
|
|
%cst:sgpr_64(s64) = G_CONSTANT i64 281470681743360
|
|
%bfe:sgpr_64(s64) = S_BFE_U64 %cst, 1048608, implicit-def $scc
|
|
$sgpr0_sgpr1 = COPY %bfe
|
|
...
|
|
---
|
|
name: test_s_bfe_i64_constants_sixth_bit
|
|
body: |
|
|
bb.0:
|
|
; Extract [32:48)
|
|
; Check we correctly read 6 bits for the width on 64 bit BFEs.
|
|
; CHECK-LABEL: name: @test_s_bfe_i64_constants_sixth_bit
|
|
; CHECK-NEXT: %cst:sgpr_64 KnownBits:0000000000000000111111111111111100000000000000000000000000000000 SignBits:16
|
|
; CHECK-NEXT: %bfe:sgpr_64 KnownBits:1111111111111111111111111111111111111111111111111111111111111111 SignBits:64
|
|
%cst:sgpr_64(s64) = G_CONSTANT i64 281470681743360
|
|
%bfe:sgpr_64(s64) = S_BFE_I64 %cst, 1048608, implicit-def $scc
|
|
$sgpr0_sgpr1 = COPY %bfe
|
|
...
|