Files
TheRock/compiler/amd-llvm/llvm/test/CodeGen/PowerPC/pr175297.ll
T
derek.holloway 7502bf64a4
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
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

93 lines
3.6 KiB
LLVM

; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
; RUN: llc -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s
define <32 x i16> @backsmith_pure_7(<8 x i8> %conv) {
; CHECK-LABEL: backsmith_pure_7:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: addis r3, r2, .LCPI0_0@toc@ha
; CHECK-NEXT: vspltisw v3, 1
; CHECK-NEXT: addis r4, r2, .LCPI0_5@toc@ha
; CHECK-NEXT: li r5, 1
; CHECK-NEXT: li r6, 0
; CHECK-NEXT: addi r3, r3, .LCPI0_0@toc@l
; CHECK-NEXT: addi r4, r4, .LCPI0_5@toc@l
; CHECK-NEXT: rldimi r6, r5, 32, 0
; CHECK-NEXT: vupklsw v5, v3
; CHECK-NEXT: mtvsrd v6, r5
; CHECK-NEXT: li r5, 0
; CHECK-NEXT: lxvd2x vs0, 0, r3
; CHECK-NEXT: addis r3, r2, .LCPI0_3@toc@ha
; CHECK-NEXT: addi r3, r3, .LCPI0_3@toc@l
; CHECK-NEXT: lxvd2x vs1, 0, r3
; CHECK-NEXT: addis r3, r2, .LCPI0_4@toc@ha
; CHECK-NEXT: xxmrgld v2, v2, v5
; CHECK-NEXT: addi r3, r3, .LCPI0_4@toc@l
; CHECK-NEXT: lxvd2x vs2, 0, r3
; CHECK-NEXT: addis r3, r2, .LCPI0_6@toc@ha
; CHECK-NEXT: addi r3, r3, .LCPI0_6@toc@l
; CHECK-NEXT: lxvd2x vs3, 0, r3
; CHECK-NEXT: xxswapd v4, vs0
; CHECK-NEXT: xxspltd vs0, v5, 1
; CHECK-NEXT: mffprwz r3, f0
; CHECK-NEXT: xxmrgld v3, v4, v5
; CHECK-NEXT: xxswapd v0, vs1
; CHECK-NEXT: xxswapd vs1, v3
; CHECK-NEXT: vperm v0, v2, v4, v0
; CHECK-NEXT: xxpermdi v4, v4, v2, 2
; CHECK-NEXT: xxswapd v1, vs2
; CHECK-NEXT: lxvd2x vs2, 0, r4
; CHECK-NEXT: mffprwz r4, f0
; CHECK-NEXT: rldimi r4, r3, 32, 0
; CHECK-NEXT: addis r3, r2, .LCPI0_1@toc@ha
; CHECK-NEXT: addi r3, r3, .LCPI0_1@toc@l
; CHECK-NEXT: lxvd2x vs0, 0, r3
; CHECK-NEXT: mfvsrwz r3, v3
; CHECK-NEXT: vperm v0, v5, v0, v1
; CHECK-NEXT: mtvsrd v1, r5
; CHECK-NEXT: addis r5, r2, .LCPI0_2@toc@ha
; CHECK-NEXT: addi r5, r5, .LCPI0_2@toc@l
; CHECK-NEXT: xxswapd v7, vs3
; CHECK-NEXT: xxmrglw v8, v0, v0
; CHECK-NEXT: xxmrghw v9, v0, v0
; CHECK-NEXT: vperm v5, v2, v5, v7
; CHECK-NEXT: xxswapd v7, v2
; CHECK-NEXT: vpkudum v2, v2, v3
; CHECK-NEXT: vmrghh v1, v1, v6
; CHECK-NEXT: xxswapd v6, vs2
; CHECK-NEXT: lxvd2x vs2, 0, r5
; CHECK-NEXT: mffprwz r5, f1
; CHECK-NEXT: vpkudum v4, v7, v4
; CHECK-NEXT: vpkudum v7, v3, v7
; CHECK-NEXT: mtfprd f1, r6
; CHECK-NEXT: rldimi r5, r3, 32, 0
; CHECK-NEXT: li r3, 1
; CHECK-NEXT: vperm v6, v8, v0, v6
; CHECK-NEXT: vmrghh v0, v9, v0
; CHECK-NEXT: rldimi r3, r3, 32, 0
; CHECK-NEXT: xxswapd v8, vs2
; CHECK-NEXT: mtfprd f2, r5
; CHECK-NEXT: xxswapd v3, vs0
; CHECK-NEXT: mtfprd f0, r4
; CHECK-NEXT: xxland v3, v4, v3
; CHECK-NEXT: xxmrghd v9, vs1, vs0
; CHECK-NEXT: mtfprd f0, r3
; CHECK-NEXT: xxmrglw vs1, v0, v6
; CHECK-NEXT: xxlxor v6, v6, v6
; CHECK-NEXT: vperm v2, v6, v2, v8
; CHECK-NEXT: vpkuwum v3, v3, v9
; CHECK-NEXT: xxmrghd v0, vs0, vs2
; CHECK-NEXT: xxspltw vs0, v1, 3
; CHECK-NEXT: vperm v1, v6, v5, v8
; CHECK-NEXT: vpkuwum v5, v2, v0
; CHECK-NEXT: xxmrgld v2, vs1, vs0
; CHECK-NEXT: vpkuwum v4, v7, v1
; CHECK-NEXT: blr
entry:
%0 = bitcast <8 x i8> %conv to i64
%vecinit9 = insertelement <2 x i64> splat (i64 1), i64 %0, i64 1
%shuffle = shufflevector <2 x i64> %vecinit9, <2 x i64> <i64 1, i64 0>, <32 x i32> <i32 2, i32 3, i32 2, i32 3, i32 2, i32 1, i32 0, i32 3, i32 0, i32 0, i32 3, i32 2, i32 1, i32 2, i32 1, i32 3, i32 0, i32 3, i32 3, i32 1, i32 1, i32 0, i32 0, i32 2, i32 0, i32 2, i32 2, i32 2, i32 0, i32 2, i32 3, i32 1>
%conv11 = trunc <32 x i64> %shuffle to <32 x i16>
ret <32 x i16> %conv11
}