[PATCH] D124595: [HLSL] Add llvm intrinsic for HLSL.

Xiang Li via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 27 22:54:25 PDT 2022


python3kgae updated this revision to Diff 425697.
python3kgae added a comment.

Remove clang part change.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124595/new/

https://reviews.llvm.org/D124595

Files:
  clang/test/CodeGenHLSL/Builtins/sin_f32.hlsl
  llvm/include/llvm/IR/CMakeLists.txt
  llvm/include/llvm/IR/Intrinsics.td
  llvm/include/llvm/IR/IntrinsicsDirectX.td
  llvm/lib/IR/Function.cpp


Index: llvm/lib/IR/Function.cpp
===================================================================
--- llvm/lib/IR/Function.cpp
+++ llvm/lib/IR/Function.cpp
@@ -36,6 +36,7 @@
 #include "llvm/IR/IntrinsicsAMDGPU.h"
 #include "llvm/IR/IntrinsicsARM.h"
 #include "llvm/IR/IntrinsicsBPF.h"
+#include "llvm/IR/IntrinsicsDirectX.h"
 #include "llvm/IR/IntrinsicsHexagon.h"
 #include "llvm/IR/IntrinsicsMips.h"
 #include "llvm/IR/IntrinsicsNVPTX.h"
Index: llvm/include/llvm/IR/IntrinsicsDirectX.td
===================================================================
--- /dev/null
+++ llvm/include/llvm/IR/IntrinsicsDirectX.td
@@ -0,0 +1,17 @@
+//===- IntrinsicsDirectX.td - Defines DirectX intrinsics ---*- tablegen -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines all of the DirectX-specific intrinsics.
+//
+//===----------------------------------------------------------------------===//
+
+// Specialized loads from packet
+let TargetPrefix = "dx" in {  // All intrinsics start with "llvm.dx."
+  def int_dx_sin_f32 : GCCBuiltin<"__builtin_dx_sin_f32">,
+              Intrinsic<[llvm_float_ty], [llvm_float_ty], [IntrNoMem]>;
+}
Index: llvm/include/llvm/IR/Intrinsics.td
===================================================================
--- llvm/include/llvm/IR/Intrinsics.td
+++ llvm/include/llvm/IR/Intrinsics.td
@@ -2047,3 +2047,4 @@
 include "llvm/IR/IntrinsicsWebAssembly.td"
 include "llvm/IR/IntrinsicsRISCV.td"
 include "llvm/IR/IntrinsicsVE.td"
+include "llvm/IR/IntrinsicsDirectX.td"
Index: llvm/include/llvm/IR/CMakeLists.txt
===================================================================
--- llvm/include/llvm/IR/CMakeLists.txt
+++ llvm/include/llvm/IR/CMakeLists.txt
@@ -8,6 +8,7 @@
 tablegen(LLVM IntrinsicsAMDGPU.h -gen-intrinsic-enums -intrinsic-prefix=amdgcn)
 tablegen(LLVM IntrinsicsARM.h -gen-intrinsic-enums -intrinsic-prefix=arm)
 tablegen(LLVM IntrinsicsBPF.h -gen-intrinsic-enums -intrinsic-prefix=bpf)
+tablegen(LLVM IntrinsicsDirectX.h -gen-intrinsic-enums -intrinsic-prefix=dx)
 tablegen(LLVM IntrinsicsHexagon.h -gen-intrinsic-enums -intrinsic-prefix=hexagon)
 tablegen(LLVM IntrinsicsMips.h -gen-intrinsic-enums -intrinsic-prefix=mips)
 tablegen(LLVM IntrinsicsNVPTX.h -gen-intrinsic-enums -intrinsic-prefix=nvvm)
Index: clang/test/CodeGenHLSL/Builtins/sin_f32.hlsl
===================================================================
--- /dev/null
+++ clang/test/CodeGenHLSL/Builtins/sin_f32.hlsl
@@ -0,0 +1,7 @@
+// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.15-library -x hlsl -S -emit-llvm  -o - %s | FileCheck %s
+
+//CHECK:call float @llvm.dx.sin.f32
+
+float foo(float a) {
+  return __builtin_dx_sin_f32(a);
+}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124595.425697.patch
Type: text/x-patch
Size: 2934 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220428/979ca602/attachment.bin>


More information about the cfe-commits mailing list