Skip to content

Commit 3c0002c

Browse files
JanekvOchencha3
authored andcommitted
Fix macro expansion for AMDHSA_BITS_SET (llvm#85661)
Corrects the `AMDHSA_BITS_SET` macro.
1 parent 5bddf15 commit 3c0002c

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

llvm/include/llvm/Support/AMDHSAKernelDescriptor.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,12 @@
4646

4747
// Sets bits for specified bit mask in specified destination.
4848
#ifndef AMDHSA_BITS_SET
49-
#define AMDHSA_BITS_SET(DST, MSK, VAL) \
50-
DST &= ~MSK; \
51-
DST |= ((VAL << MSK ## _SHIFT) & MSK)
49+
#define AMDHSA_BITS_SET(DST, MSK, VAL) \
50+
do { \
51+
auto local = VAL; \
52+
DST &= ~MSK; \
53+
DST |= ((local << MSK##_SHIFT) & MSK); \
54+
} while (0)
5255
#endif // AMDHSA_BITS_SET
5356

5457
namespace llvm {

llvm/test/MC/AMDGPU/hsa-gfx12-v4.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
// OBJDUMP-NEXT: 0000 00000000 00000000 00000000 00000000
3030
// OBJDUMP-NEXT: 0010 00000000 00000000 00000000 00000000
3131
// OBJDUMP-NEXT: 0020 00000000 00000000 00000000 00000000
32-
// OBJDUMP-NEXT: 0030 00000c60 80000000 00000000 00000000
32+
// OBJDUMP-NEXT: 0030 00000c60 80000000 00040000 00000000
3333
// complete
3434
// OBJDUMP-NEXT: 0040 01000000 01000000 08000000 00000000
3535
// OBJDUMP-NEXT: 0050 00000000 00000000 00000000 00000000
@@ -39,12 +39,12 @@
3939
// OBJDUMP-NEXT: 0080 00000000 00000000 00000000 00000000
4040
// OBJDUMP-NEXT: 0090 00000000 00000000 00000000 00000000
4141
// OBJDUMP-NEXT: 00a0 00000000 00000000 00000000 00000000
42-
// OBJDUMP-NEXT: 00b0 00000060 80000000 00000000 00000000
42+
// OBJDUMP-NEXT: 00b0 00000060 80000000 00040000 00000000
4343
// disabled_user_sgpr
4444
// OBJDUMP-NEXT: 00c0 00000000 00000000 00000000 00000000
4545
// OBJDUMP-NEXT: 00d0 00000000 00000000 00000000 00000000
4646
// OBJDUMP-NEXT: 00e0 00000000 00000000 00000000 00000000
47-
// OBJDUMP-NEXT: 00f0 00000c60 80000000 00000000 00000000
47+
// OBJDUMP-NEXT: 00f0 00000c60 80000000 00040000 00000000
4848

4949
.text
5050
// ASM: .text

0 commit comments

Comments
 (0)