Skip to content

Implement the degrees HLSL Function #99104

Closed
@farzonl

Description

@farzonl
  • Implement degrees clang builtin,
  • Link degrees clang builtin with hlsl_intrinsics.h
  • Add sema checks for degrees to CheckHLSLBuiltinFunctionCall in SemaChecking.cpp
  • Add codegen for degrees to EmitHLSLBuiltinExpr in CGBuiltin.cpp
  • Add codegen tests to clang/test/CodeGenHLSL/builtins/degrees.hlsl
  • Add sema tests to clang/test/SemaHLSL/BuiltIns/degrees-errors.hlsl
  • Create the int_spv_degrees intrinsic in IntrinsicsSPIRV.td
  • In SPIRVInstructionSelector.cpp create the degrees lowering and map it to int_spv_degrees in SPIRVInstructionSelector::selectIntrinsic.
  • Create SPIR-V backend test case in llvm/test/CodeGen/SPIRV/hlsl-intrinsics/degrees.ll

DirectX

There were no DXIL opcodes found for degrees.

SPIR-V

Degrees:

Description:

Degrees

Converts radians to degrees, i.e., radians * 180 / π.

The operand radians must be a scalar or vector whose component type is
16-bit or 32-bit floating-point.

Result Type and the type of radians must be the same type. Results
are computed per component.

Number Operand 1 Operand 2 Operand 3 Operand 4

12

<id>
radians

Test Case(s)

Example 1

//dxc degrees_test.hlsl -T lib_6_8 -enable-16bit-types -O0

export float4 fn(float4 p1) {
    return degrees(p1);
}

HLSL:

Converts the specified value from radians to degrees.

ret degrees(x)

Parameters

Item Description
x
[in] The specified value.

Return Value

The result of converting the x parameter from radians to degrees.

Type Description

Name Template Type Component Type Size
x scalar, vector, or matrix float any
ret same as input x float same dimension(s) as input x

Minimum Shader Model

This function is supported in the following shader models.

Shader Model Supported
Shader Model 2 (DirectX HLSL) and higher shader models yes
Shader Model 1 (DirectX HLSL) vs_1_1

See also

Intrinsic Functions (DirectX HLSL)

Metadata

Metadata

Assignees

Labels

HLSLHLSL Language Supportbackend:DirectXbackend:SPIR-Vbot:HLSLclang:codegenIR generation bugs: mangling, exceptions, etc.clang:frontendLanguage frontend issues, e.g. anything involving "Sema"metaissueIssue to collect references to a group of similar or related issues.

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions