xref: /llvm-project/llvm/test/CodeGen/SPIRV/llvm-intrinsics/ceil.ll (revision 67d3ef74b31e1517d4f679e754cc2b3041c95901)
1*67d3ef74SVyacheslav Levytskyy; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
2f20c9c42SAndrey Tretyakov
3f20c9c42SAndrey Tretyakov; CHECK: %[[#extinst_id:]] = OpExtInstImport "OpenCL.std"
4f20c9c42SAndrey Tretyakov
5f20c9c42SAndrey Tretyakov; CHECK: %[[#var1:]] = OpTypeFloat 32
6f20c9c42SAndrey Tretyakov; CHECK: %[[#var2:]] = OpTypeFloat 64
7f20c9c42SAndrey Tretyakov; CHECK: %[[#var3:]] = OpTypeVector %[[#var1]] 4
8f20c9c42SAndrey Tretyakov
9f20c9c42SAndrey Tretyakov; CHECK: OpFunction
10f20c9c42SAndrey Tretyakov; CHECK: %[[#]] = OpExtInst %[[#var1]] %[[#extinst_id]] ceil
11f20c9c42SAndrey Tretyakov; CHECK: OpFunctionEnd
12f20c9c42SAndrey Tretyakov
13f20c9c42SAndrey Tretyakovdefine spir_func float @TestCeil32(float %x) local_unnamed_addr {
14f20c9c42SAndrey Tretyakoventry:
15f20c9c42SAndrey Tretyakov  %0 = tail call float @llvm.ceil.f32(float %x)
16f20c9c42SAndrey Tretyakov  ret float %0
17f20c9c42SAndrey Tretyakov}
18f20c9c42SAndrey Tretyakov
19f20c9c42SAndrey Tretyakov; CHECK: OpFunction
20f20c9c42SAndrey Tretyakov; CHECK: %[[#]] = OpExtInst %[[#var2]] %[[#extinst_id]] ceil
21f20c9c42SAndrey Tretyakov; CHECK: OpFunctionEnd
22f20c9c42SAndrey Tretyakov
23f20c9c42SAndrey Tretyakovdefine spir_func double @TestCeil64(double %x) local_unnamed_addr {
24f20c9c42SAndrey Tretyakoventry:
25f20c9c42SAndrey Tretyakov  %0 = tail call double @llvm.ceil.f64(double %x)
26f20c9c42SAndrey Tretyakov  ret double %0
27f20c9c42SAndrey Tretyakov}
28f20c9c42SAndrey Tretyakov
29f20c9c42SAndrey Tretyakov; CHECK: OpFunction
30f20c9c42SAndrey Tretyakov; CHECK: %[[#]] = OpExtInst %[[#var3]] %[[#extinst_id]] ceil
31f20c9c42SAndrey Tretyakov; CHECK: OpFunctionEnd
32f20c9c42SAndrey Tretyakov
33f20c9c42SAndrey Tretyakovdefine spir_func <4 x float> @TestCeilVec(<4 x float> %x) local_unnamed_addr {
34f20c9c42SAndrey Tretyakoventry:
35f20c9c42SAndrey Tretyakov  %0 = tail call <4 x float> @llvm.ceil.v4f32(<4 x float> %x)
36f20c9c42SAndrey Tretyakov  ret <4 x float> %0
37f20c9c42SAndrey Tretyakov}
38f20c9c42SAndrey Tretyakov
39f20c9c42SAndrey Tretyakovdeclare float @llvm.ceil.f32(float)
40f20c9c42SAndrey Tretyakov
41f20c9c42SAndrey Tretyakovdeclare double @llvm.ceil.f64(double)
42f20c9c42SAndrey Tretyakov
43f20c9c42SAndrey Tretyakovdeclare <4 x float> @llvm.ceil.v4f32(<4 x float>)
44