[OpenMP] Add test for custom state machine if have reduction
authorJoel E. Denny <jdenny.ornl@gmail.com>
Fri, 10 Dec 2021 17:07:31 +0000 (12:07 -0500)
committerJoel E. Denny <jdenny.ornl@gmail.com>
Fri, 10 Dec 2021 17:53:54 +0000 (12:53 -0500)
commit51168ce8d574360a50446c5795b9f5a68c693fca
tree995f1dfdba0fd8cc4b0f48cab25793535048e196
parent80ed2f6b3659d7d9449517a0eb552f361ce80e15
[OpenMP] Add test for custom state machine if have reduction

D113602 broke the custom state machine when a reduction is present, as
revealed by the reproducer this patch adds to the test suite.  In that
case, openmp-opts changes the return value to undef in
`__kmpc_get_warp_size` (which the custom state machine calls as of
D113602).  Later optimizations then optimize away the custom state
machine code as if all threads are outside the thread block, so the
target region does not execute.  D114802 fixed that but didn't add a
reproducer.

This patch also adds a `__OMP_RTL_ATTRS` entry for
`__kmpc_get_warp_size` to OMPKinds.def, which D113602 missed.  This
change does not seem to have any impact on the reduction problem.

Reviewed By: JonChesterfield, jdoerfert

Differential Revision: https://reviews.llvm.org/D113824
llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
openmp/libomptarget/test/offloading/bug51781.c