The case where a dim is greater than the grid size doesn't seem
to be mentioned in the specs nor tested by PRM test suite.
---
 gcc/brig/brigfrontend/brig-code-entry-handler.cc | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

>From 99303afff584518c1fd17e3c6ebe965043dd58f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pekka=20J=C3=A4=C3=A4skel=C3=A4inen?=
 <pekka.jaaskelai...@parmance.com>
Date: Tue, 27 Mar 2018 22:19:11 +0300
Subject: [PATCH 3/8] [BRIGFE] The modulo in ID computation should not be
 needed.

The case where a dim is greater than the grid size doesn't seem
to be mentioned in the specs nor tested by PRM test suite.
---
 gcc/brig/brigfrontend/brig-code-entry-handler.cc | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/gcc/brig/brigfrontend/brig-code-entry-handler.cc b/gcc/brig/brigfrontend/brig-code-entry-handler.cc
index 54b53fd..36a8deb 100644
--- a/gcc/brig/brigfrontend/brig-code-entry-handler.cc
+++ b/gcc/brig/brigfrontend/brig-code-entry-handler.cc
@@ -1048,7 +1048,6 @@ brig_code_entry_handler::expand_builtin (BrigOpcode16_t brig_opcode,
       tree local_id_var = m_parent.m_cf->m_local_id_vars[dim];
       tree wg_id_var = m_parent.m_cf->m_wg_id_vars[dim];
       tree wg_size_var = m_parent.m_cf->m_wg_size_vars[dim];
-      tree grid_size_var = m_parent.m_cf->m_grid_size_vars[dim];
 
       tree wg_id_x_wg_size = build2 (MULT_EXPR, uint32_type_node,
 				     convert (uint32_type_node, wg_id_var),
@@ -1056,15 +1055,8 @@ brig_code_entry_handler::expand_builtin (BrigOpcode16_t brig_opcode,
       tree sum
 	= build2 (PLUS_EXPR, uint32_type_node, wg_id_x_wg_size, local_id_var);
 
-      /* We need a modulo here because of work-groups which have dimensions
-	 larger than the grid size :( TO CHECK: is this really allowed in the
-	 specs?  */
-      tree modulo
-	= build2 (TRUNC_MOD_EXPR, uint32_type_node, sum, grid_size_var);
-
       return add_temp_var (std::string ("workitemabsid_")
-			     + (char) ((int) 'x' + dim),
-			   modulo);
+			   + (char) ((int) 'x' + dim), sum);
     }
   else if (brig_opcode == BRIG_OPCODE_WORKITEMFLATID)
     {
-- 
2.7.4

Reply via email to