[llvm] Pre-commit lit test (PR #88858)

Abhinav Garg via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 16 01:42:10 PDT 2024


https://github.com/abhigargrepo created https://github.com/llvm/llvm-project/pull/88858

This test will check the  mode register in case of constrained floating point operations.

>From e5545e88e4c2c4454b64f78f4c4bcfef8a9338c4 Mon Sep 17 00:00:00 2001
From: Abhinav <abhinav.garg at amd.com>
Date: Tue, 16 Apr 2024 11:42:11 +0530
Subject: [PATCH] Pre-commit lit test

This test will check the  mode register in case of
constrained floating point operations.
---
 .../AMDGPU/mode-register-fpconstrain.mir      | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 llvm/test/CodeGen/AMDGPU/mode-register-fpconstrain.mir

diff --git a/llvm/test/CodeGen/AMDGPU/mode-register-fpconstrain.mir b/llvm/test/CodeGen/AMDGPU/mode-register-fpconstrain.mir
new file mode 100644
index 00000000000000..fe4912c2e84cf6
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/mode-register-fpconstrain.mir
@@ -0,0 +1,36 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
+# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=si-mode-register -verify-machineinstrs %s -o - | FileCheck -check-prefix=GCN %s
+
+# The si-mode-register pass is changing the default mode for FP constrained  operations.
+# It must ignore strictfp functions.
+
+--- |
+  define void @ignoreStrictFpFns() #0 {
+    ret void
+  }
+
+  attributes #0 = { strictfp }
+
+...
+---
+name:            ignoreStrictFpFns
+tracksRegLiveness: true
+body:             |
+  bb.0:
+    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
+    ; GCN-LABEL: name: ignoreStrictFpFns
+    ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
+    ; GCN-NEXT: {{  $}}
+    ; GCN-NEXT: S_WAITCNT 0
+    ; GCN-NEXT: S_SETREG_IMM32_B32_mode 1, 2177, implicit-def dead $mode, implicit $mode
+    ; GCN-NEXT: S_SETREG_IMM32_B32 0, 129, implicit-def $mode, implicit $mode
+    ; GCN-NEXT: renamable $vgpr0_vgpr1 = nofpexcept V_ADD_F64_e64 0, killed $vgpr0_vgpr1, 0, killed $vgpr2_vgpr3, 0, 0, implicit $mode, implicit $exec
+    ; GCN-NEXT: S_SETREG_IMM32_B32_mode 0, 2177, implicit-def dead $mode, implicit $mode
+    ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0, implicit killed $vgpr1
+    S_WAITCNT 0
+    S_SETREG_IMM32_B32_mode 1, 2177, implicit-def dead $mode, implicit $mode
+    renamable $vgpr0_vgpr1 = nofpexcept V_ADD_F64_e64 0, killed $vgpr0_vgpr1, 0, killed $vgpr2_vgpr3, 0, 0, implicit $mode, implicit $exec
+    S_SETREG_IMM32_B32_mode 0, 2177, implicit-def dead $mode, implicit $mode
+    S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0, implicit killed $vgpr1
+
+...



More information about the llvm-commits mailing list