Files
TheRock/compiler/spirv-llvm-translator/test/llvm-intrinsics/fp-vector-intrinsics.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

166 lines
5.2 KiB
LLVM

; RUN: llvm-as %s -o %t.bc
; RUN: llvm-spirv %t.bc -spirv-text -o - | FileCheck %s
; RUN: llvm-spirv %t.bc -o %t.spv
; RUN: spirv-val %t.spv
target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64"
target triple = "spir64"
declare <2 x half> @llvm.rint.v2f16(<2 x half>)
declare <2 x half> @llvm.nearbyint.v2f16(<2 x half>)
declare <2 x half> @llvm.floor.v2f16(<2 x half>)
declare <2 x half> @llvm.round.v2f16(<2 x half>)
declare <2 x half> @llvm.trunc.v2f16(<2 x half>)
declare <2 x half> @llvm.sin.v2f16(<2 x half>)
declare <2 x half> @llvm.cos.v2f16(<2 x half>)
declare <2 x half> @llvm.exp2.v2f16(<2 x half>)
declare <2 x half> @llvm.log.v2f16(<2 x half>)
declare <2 x half> @llvm.log10.v2f16(<2 x half>)
declare <2 x half> @llvm.log2.v2f16(<2 x half>)
; CHECK-DAG: Name [[#VECTOR_RINT:]] "vector_rint"
; CHECK-DAG: Name [[#VECTOR_NEARBYINT:]] "vector_nearbyint"
; CHECK-DAG: Name [[#VECTOR_FLOOR:]] "vector_floor"
; CHECK-DAG: Name [[#VECTOR_ROUND:]] "vector_round"
; CHECK-DAG: Name [[#VECTOR_TRUNC:]] "vector_trunc"
; CHECK-DAG: Name [[#VECTOR_SIN:]] "vector_sin"
; CHECK-DAG: Name [[#VECTOR_COS:]] "vector_cos"
; CHECK-DAG: Name [[#VECTOR_EXP2:]] "vector_exp2"
; CHECK-DAG: Name [[#VECTOR_LOG:]] "vector_log"
; CHECK-DAG: Name [[#VECTOR_LOG10:]] "vector_log10"
; CHECK-DAG: Name [[#VECTOR_LOG2:]] "vector_log2"
; CHECK-DAG: ExtInstImport [[#CLEXT:]] "OpenCL.std"
; CHECK: Function [[#]] [[#VECTOR_RINT]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] rint [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_rint(<2 x half> %a) {
%r = call <2 x half> @llvm.rint.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_NEARBYINT]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] rint [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_nearbyint(<2 x half> %a) {
%r = call <2 x half> @llvm.nearbyint.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_FLOOR]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] floor [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_floor(<2 x half> %a) {
%r = call <2 x half> @llvm.floor.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_ROUND]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] round [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_round(<2 x half> %a) {
%r = call <2 x half> @llvm.round.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_TRUNC]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] trunc [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_trunc(<2 x half> %a) {
%r = call <2 x half> @llvm.trunc.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_SIN]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] sin [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_sin(<2 x half> %a) {
%r = call <2 x half> @llvm.sin.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_COS]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] cos [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_cos(<2 x half> %a) {
%r = call <2 x half> @llvm.cos.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_EXP2]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] exp2 [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_exp2(<2 x half> %a) {
%r = call <2 x half> @llvm.exp2.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_LOG]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] log [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_log(<2 x half> %a) {
%r = call <2 x half> @llvm.log.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_LOG10]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] log10 [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_log10(<2 x half> %a) {
%r = call <2 x half> @llvm.log10.v2f16(<2 x half> %a)
ret <2 x half> %r
}
; CHECK: Function [[#]] [[#VECTOR_LOG2]] [[#]] [[#]]
; CHECK-NEXT: FunctionParameter [[#]] [[#A:]]
; CHECK: Label
; CHECK: ExtInst [[#]] [[#R:]] [[#CLEXT]] log2 [[#A]]
; CHECK: ReturnValue [[#R]]
; CHECK: FunctionEnd
define <2 x half> @vector_log2(<2 x half> %a) {
%r = call <2 x half> @llvm.log2.v2f16(<2 x half> %a)
ret <2 x half> %r
}