1*cf3d6fdeSNathan Gauër; RUN: llc -O0 -verify-machineinstrs -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s 22ae6889dSFarzon Lotfi; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %} 32ae6889dSFarzon Lotfi 42ae6889dSFarzon Lotfi; CHECK-DAG: %[[#op_ext_glsl:]] = OpExtInstImport "GLSL.std.450" 52ae6889dSFarzon Lotfi; CHECK-DAG: %[[#float_32:]] = OpTypeFloat 32 62ae6889dSFarzon Lotfi; CHECK-DAG: %[[#float_16:]] = OpTypeFloat 16 72ae6889dSFarzon Lotfi; CHECK-DAG: %[[#vec4_float_32:]] = OpTypeVector %[[#float_32]] 4 82ae6889dSFarzon Lotfi; CHECK-DAG: %[[#vec4_float_16:]] = OpTypeVector %[[#float_16]] 4 92ae6889dSFarzon Lotfi 102ae6889dSFarzon Lotfidefine noundef float @atan_float(float noundef %a) { 112ae6889dSFarzon Lotfientry: 122ae6889dSFarzon Lotfi; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#]] 132ae6889dSFarzon Lotfi; CHECK: %[[#]] = OpExtInst %[[#float_32]] %[[#op_ext_glsl]] Atan %[[#arg0]] 142ae6889dSFarzon Lotfi %elt.atan = call float @llvm.atan.f32(float %a) 152ae6889dSFarzon Lotfi ret float %elt.atan 162ae6889dSFarzon Lotfi} 172ae6889dSFarzon Lotfi 182ae6889dSFarzon Lotfidefine noundef half @atan_half(half noundef %a) { 192ae6889dSFarzon Lotfientry: 202ae6889dSFarzon Lotfi; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#]] 212ae6889dSFarzon Lotfi; CHECK: %[[#]] = OpExtInst %[[#float_16]] %[[#op_ext_glsl]] Atan %[[#arg0]] 222ae6889dSFarzon Lotfi %elt.atan = call half @llvm.atan.f16(half %a) 232ae6889dSFarzon Lotfi ret half %elt.atan 242ae6889dSFarzon Lotfi} 252ae6889dSFarzon Lotfi 262ae6889dSFarzon Lotfidefine noundef <4 x float> @atan_float4(<4 x float> noundef %a) { 272ae6889dSFarzon Lotfientry: 282ae6889dSFarzon Lotfi ; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#]] 292ae6889dSFarzon Lotfi ; CHECK: %[[#]] = OpExtInst %[[#vec4_float_32]] %[[#op_ext_glsl]] Atan %[[#arg0]] 302ae6889dSFarzon Lotfi %elt.atan = call <4 x float> @llvm.atan.v4f32(<4 x float> %a) 312ae6889dSFarzon Lotfi ret <4 x float> %elt.atan 322ae6889dSFarzon Lotfi} 332ae6889dSFarzon Lotfi 342ae6889dSFarzon Lotfidefine noundef <4 x half> @atan_half4(<4 x half> noundef %a) { 352ae6889dSFarzon Lotfientry: 362ae6889dSFarzon Lotfi ; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#]] 372ae6889dSFarzon Lotfi ; CHECK: %[[#]] = OpExtInst %[[#vec4_float_16]] %[[#op_ext_glsl]] Atan %[[#arg0]] 382ae6889dSFarzon Lotfi %elt.atan = call <4 x half> @llvm.atan.v4f16(<4 x half> %a) 392ae6889dSFarzon Lotfi ret <4 x half> %elt.atan 402ae6889dSFarzon Lotfi} 412ae6889dSFarzon Lotfi 422ae6889dSFarzon Lotfideclare half @llvm.atan.f16(half) 432ae6889dSFarzon Lotfideclare float @llvm.atan.f32(float) 442ae6889dSFarzon Lotfideclare <4 x half> @llvm.atan.v4f16(<4 x half>) 452ae6889dSFarzon Lotfideclare <4 x float> @llvm.atan.v4f32(<4 x float>) 46