diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-01-18 16:17:27 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-01-18 16:17:27 +0000 |
commit | 67c32a98315f785a9ec9d531c1f571a0196c7463 (patch) | |
tree | 4abb9cbeecc7901726dd0b4a37369596c852e9ef /test/CodeGen/R600/fp_to_uint.ll | |
parent | 9f61947910e6ab40de38e6b4034751ef1513200f (diff) | |
download | src-67c32a98315f785a9ec9d531c1f571a0196c7463.tar.gz src-67c32a98315f785a9ec9d531c1f571a0196c7463.zip |
Vendor import of llvm RELEASE_360/rc1 tag r226102 (effectively, 3.6.0 RC1):vendor/llvm/llvm-release_360-r226102
Notes
Notes:
svn path=/vendor/llvm/dist/; revision=277323
svn path=/vendor/llvm/llvm-release_360-r226102/; revision=277324; tag=vendor/llvm/llvm-release_360-r226102
Diffstat (limited to 'test/CodeGen/R600/fp_to_uint.ll')
-rw-r--r-- | test/CodeGen/R600/fp_to_uint.ll | 83 |
1 files changed, 46 insertions, 37 deletions
diff --git a/test/CodeGen/R600/fp_to_uint.ll b/test/CodeGen/R600/fp_to_uint.ll index a13018bdfecf..5970adf999c9 100644 --- a/test/CodeGen/R600/fp_to_uint.ll +++ b/test/CodeGen/R600/fp_to_uint.ll @@ -1,38 +1,47 @@ -; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck %s --check-prefix=EG --check-prefix=FUNC -; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck %s --check-prefix=SI --check-prefix=FUNC +; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck %s -check-prefix=EG -check-prefix=FUNC +; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck %s -check-prefix=SI -check-prefix=FUNC -; FUNC-LABEL: @fp_to_uint_v2i32 +; FUNC-LABEL: {{^}}fp_to_uint_f32_to_i32: +; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}} + +; SI: v_cvt_u32_f32_e32 +; SI: s_endpgm +define void @fp_to_uint_f32_to_i32 (i32 addrspace(1)* %out, float %in) { + %conv = fptoui float %in to i32 + store i32 %conv, i32 addrspace(1)* %out + ret void +} + +; FUNC-LABEL: {{^}}fp_to_uint_v2f32_to_v2i32: ; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}} ; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} -; SI: V_CVT_U32_F32_e32 -; SI: V_CVT_U32_F32_e32 -define void @fp_to_uint_v2i32(<2 x i32> addrspace(1)* %out, <2 x float> %in) { +; SI: v_cvt_u32_f32_e32 +; SI: v_cvt_u32_f32_e32 +define void @fp_to_uint_v2f32_to_v2i32(<2 x i32> addrspace(1)* %out, <2 x float> %in) { %result = fptoui <2 x float> %in to <2 x i32> store <2 x i32> %result, <2 x i32> addrspace(1)* %out ret void } -; FUNC-LABEL: @fp_to_uint_v4i32 +; FUNC-LABEL: {{^}}fp_to_uint_v4f32_to_v4i32: ; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}} ; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}} ; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}} ; EG: FLT_TO_UINT {{\** *}}T{{[0-9]+\.[XYZW], PV\.[XYZW]}} -; SI: V_CVT_U32_F32_e32 -; SI: V_CVT_U32_F32_e32 -; SI: V_CVT_U32_F32_e32 -; SI: V_CVT_U32_F32_e32 +; SI: v_cvt_u32_f32_e32 +; SI: v_cvt_u32_f32_e32 +; SI: v_cvt_u32_f32_e32 +; SI: v_cvt_u32_f32_e32 -define void @fp_to_uint_v4i32(<4 x i32> addrspace(1)* %out, <4 x float> addrspace(1)* %in) { +define void @fp_to_uint_v4f32_to_v4i32(<4 x i32> addrspace(1)* %out, <4 x float> addrspace(1)* %in) { %value = load <4 x float> addrspace(1) * %in %result = fptoui <4 x float> %value to <4 x i32> store <4 x i32> %result, <4 x i32> addrspace(1)* %out ret void } -; RUN: llc -march=r600 -mcpu=SI -verify-machineinstrs < %s | FileCheck --check-prefix=SI --check-prefix=FUNC %s -; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck --check-prefix=EG --check-prefix=FUNC %s -; FUNC: @fp_to_uint_i64 +; FUNC: {{^}}fp_to_uint_f32_to_i64: ; EG-DAG: AND_INT ; EG-DAG: LSHR ; EG-DAG: SUB_INT @@ -52,17 +61,17 @@ define void @fp_to_uint_v4i32(<4 x i32> addrspace(1)* %out, <4 x float> addrspac ; EG-DAG: XOR_INT ; EG: SUB_INT ; EG-DAG: SUB_INT -; EG-DAG: CNDGE_INT -; EG-DAG: CNDGE_INT +; EG-DAG: CNDE_INT +; EG-DAG: CNDE_INT -; SI: S_ENDPGM -define void @fp_to_uint_i64(i64 addrspace(1)* %out, float %x) { +; SI: s_endpgm +define void @fp_to_uint_f32_to_i64(i64 addrspace(1)* %out, float %x) { %conv = fptoui float %x to i64 store i64 %conv, i64 addrspace(1)* %out ret void } -; FUNC: @fp_to_uint_v2i64 +; FUNC: {{^}}fp_to_uint_v2f32_to_v2i64: ; EG-DAG: AND_INT ; EG-DAG: LSHR ; EG-DAG: SUB_INT @@ -82,8 +91,8 @@ define void @fp_to_uint_i64(i64 addrspace(1)* %out, float %x) { ; EG-DAG: XOR_INT ; EG-DAG: SUB_INT ; EG-DAG: SUB_INT -; EG-DAG: CNDGE_INT -; EG-DAG: CNDGE_INT +; EG-DAG: CNDE_INT +; EG-DAG: CNDE_INT ; EG-DAG: AND_INT ; EG-DAG: LSHR ; EG-DAG: SUB_INT @@ -103,17 +112,17 @@ define void @fp_to_uint_i64(i64 addrspace(1)* %out, float %x) { ; EG-DAG: XOR_INT ; EG-DAG: SUB_INT ; EG-DAG: SUB_INT -; EG-DAG: CNDGE_INT -; EG-DAG: CNDGE_INT +; EG-DAG: CNDE_INT +; EG-DAG: CNDE_INT -; SI: S_ENDPGM -define void @fp_to_uint_v2i64(<2 x i64> addrspace(1)* %out, <2 x float> %x) { +; SI: s_endpgm +define void @fp_to_uint_v2f32_to_v2i64(<2 x i64> addrspace(1)* %out, <2 x float> %x) { %conv = fptoui <2 x float> %x to <2 x i64> store <2 x i64> %conv, <2 x i64> addrspace(1)* %out ret void } -; FUNC: @fp_to_uint_v4i64 +; FUNC: {{^}}fp_to_uint_v4f32_to_v4i64: ; EG-DAG: AND_INT ; EG-DAG: LSHR ; EG-DAG: SUB_INT @@ -133,8 +142,8 @@ define void @fp_to_uint_v2i64(<2 x i64> addrspace(1)* %out, <2 x float> %x) { ; EG-DAG: XOR_INT ; EG-DAG: SUB_INT ; EG-DAG: SUB_INT -; EG-DAG: CNDGE_INT -; EG-DAG: CNDGE_INT +; EG-DAG: CNDE_INT +; EG-DAG: CNDE_INT ; EG-DAG: AND_INT ; EG-DAG: LSHR ; EG-DAG: SUB_INT @@ -154,8 +163,8 @@ define void @fp_to_uint_v2i64(<2 x i64> addrspace(1)* %out, <2 x float> %x) { ; EG-DAG: XOR_INT ; EG-DAG: SUB_INT ; EG-DAG: SUB_INT -; EG-DAG: CNDGE_INT -; EG-DAG: CNDGE_INT +; EG-DAG: CNDE_INT +; EG-DAG: CNDE_INT ; EG-DAG: AND_INT ; EG-DAG: LSHR ; EG-DAG: SUB_INT @@ -175,8 +184,8 @@ define void @fp_to_uint_v2i64(<2 x i64> addrspace(1)* %out, <2 x float> %x) { ; EG-DAG: XOR_INT ; EG-DAG: SUB_INT ; EG-DAG: SUB_INT -; EG-DAG: CNDGE_INT -; EG-DAG: CNDGE_INT +; EG-DAG: CNDE_INT +; EG-DAG: CNDE_INT ; EG-DAG: AND_INT ; EG-DAG: LSHR ; EG-DAG: SUB_INT @@ -196,11 +205,11 @@ define void @fp_to_uint_v2i64(<2 x i64> addrspace(1)* %out, <2 x float> %x) { ; EG-DAG: XOR_INT ; EG-DAG: SUB_INT ; EG-DAG: SUB_INT -; EG-DAG: CNDGE_INT -; EG-DAG: CNDGE_INT +; EG-DAG: CNDE_INT +; EG-DAG: CNDE_INT -; SI: S_ENDPGM -define void @fp_to_uint_v4i64(<4 x i64> addrspace(1)* %out, <4 x float> %x) { +; SI: s_endpgm +define void @fp_to_uint_v4f32_to_v4i64(<4 x i64> addrspace(1)* %out, <4 x float> %x) { %conv = fptoui <4 x float> %x to <4 x i64> store <4 x i64> %conv, <4 x i64> addrspace(1)* %out ret void |