[llvm] Add PreLegalizer pattern matching for degrees GL extension (PR #216506)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 22 23:42:10 PDT 2026


================
@@ -185,6 +185,60 @@ void SPIRVCombinerHelper::applySPIRVFaceForward(MachineInstr &MI) const {
   MI.eraseFromParent();
 }
 
+/// This match is part of a combine that
+/// rewrites fmul (x,180/pi) to degrees(x)
+///   (f32 (g_fmul
+///          (f32 X)
+///          (f32 180/pi)))
+/// ->
+///   (f32 (g_intrinsic degrees
+///          (f32 X)))
+///
+/// The constant operand may also be a splat for vector types:
+///   (vXf32 (g_fmul
+///            (vXf32 X)
+///            (vXf32 splat(180/pi))))
+/// ->
+///   (vXf32 (g_intrinsic degrees
+///            (vXf32 X)))
+bool SPIRVCombinerHelper::matchDegrees(MachineInstr &MI) const {
----------------
arsenm wrote:

this should be tablegen 

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


More information about the llvm-commits mailing list