[llvm] [SPIRV] Support for SPV_INTEL_fpga_reg extension (PR #134352)

Dmitry Sidorov via llvm-commits llvm-commits at lists.llvm.org
Tue May 6 06:58:29 PDT 2025


================
@@ -0,0 +1,329 @@
+; LLVM IR for the test can be generated by SYCL Clang Compiler -
+; see https://github.com/intel/llvm
+; SYCL source code can be found below:
+
+; struct st {
+;   int a;
+;   float b;
+; };
+;
+; union un {
+;   int a;
+;   char c[4];
+; };
+;
+; class A {
+; public:
+;   A(int a) {
+;     m_val = a;
+;   }
+;   A(const A &a) {
+;     m_val = a.m_val;
+;   }
+; private:
+;     int m_val;
+; };
+;
+; typedef int myInt;
+
+; void foo() {
+;   int a=123;
+;   myInt myA = 321;
+;   int b = __builtin_intel_fpga_reg(a);
+;   int myB = __builtin_intel_fpga_reg(myA);
+;   int c = __builtin_intel_fpga_reg(2.0f);
+;   int d = __builtin_intel_fpga_reg( __builtin_intel_fpga_reg( b+12 ));
+;   int e = __builtin_intel_fpga_reg( __builtin_intel_fpga_reg( a+b ));
+;   int f;
+;   f = __builtin_intel_fpga_reg(a);
+;
+;   struct st i = {1, 5.0f};
+;   struct st i2 = i;
+;   struct st ii = __builtin_intel_fpga_reg(i);
+;   struct st iii;
+;   iii = __builtin_intel_fpga_reg(ii);
+;
+;   struct st *iiii = __builtin_intel_fpga_reg(&iii);
+;
+;   union un u1 = {1};
+;   union un u2, *u3;
+;   u2 = __builtin_intel_fpga_reg(u1);
+;
+;   u3 = __builtin_intel_fpga_reg(&u2);
+;
+;   A ca(213);
+;   A cb = __builtin_intel_fpga_reg(ca);
+; }
----------------
MrSidims wrote:

Lets remove this.

https://github.com/llvm/llvm-project/pull/134352


More information about the llvm-commits mailing list