https://github.com/xlauko created https://github.com/llvm/llvm-project/pull/187862
None >From 1a9de9376352551cf2950727fc6f4f110d419324 Mon Sep 17 00:00:00 2001 From: xlauko <[email protected]> Date: Sat, 21 Mar 2026 13:33:28 +0100 Subject: [PATCH] [CIR] Add Involution trait to BitReverseOp and ByteSwapOp --- clang/include/clang/CIR/Dialect/IR/CIROps.td | 4 ++++ clang/test/CIR/Transforms/bit.cir | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/clang/include/clang/CIR/Dialect/IR/CIROps.td b/clang/include/clang/CIR/Dialect/IR/CIROps.td index 41858a61480a8..b15dc30ffb87d 100644 --- a/clang/include/clang/CIR/Dialect/IR/CIROps.td +++ b/clang/include/clang/CIR/Dialect/IR/CIROps.td @@ -5696,6 +5696,8 @@ def CIR_BitReverseOp : CIR_BitOpBase<"bitreverse", %1 = cir.bitreverse %0: !u32i ``` }]; + + let append traits = [Involution]; } def CIR_ByteSwapOp : CIR_BitOpBase<"byte_swap", @@ -5719,6 +5721,8 @@ def CIR_ByteSwapOp : CIR_BitOpBase<"byte_swap", %1 = cir.byte_swap %0 : !u32i ``` }]; + + let append traits = [Involution]; } //===----------------------------------------------------------------------===// diff --git a/clang/test/CIR/Transforms/bit.cir b/clang/test/CIR/Transforms/bit.cir index 11f47aa39e67c..c20448e74a026 100644 --- a/clang/test/CIR/Transforms/bit.cir +++ b/clang/test/CIR/Transforms/bit.cir @@ -229,4 +229,24 @@ module { // CHECK-NEXT: %[[P:.+]] = cir.const #cir.poison : !u32i // CHECK-NEXT: cir.return %[[P]] : !u32i // CHECK-NEXT: } + + cir.func @involution_bitreverse(%arg0 : !u32i) -> !u32i { + %0 = cir.bitreverse %arg0 : !u32i + %1 = cir.bitreverse %0 : !u32i + cir.return %1 : !u32i + } + // CHECK-LABEL: @involution_bitreverse + // CHECK-SAME: (%[[X:.+]]: !u32i) + // CHECK-NEXT: cir.return %[[X]] : !u32i + // CHECK-NEXT: } + + cir.func @involution_byte_swap(%arg0 : !u32i) -> !u32i { + %0 = cir.byte_swap %arg0 : !u32i + %1 = cir.byte_swap %0 : !u32i + cir.return %1 : !u32i + } + // CHECK-LABEL: @involution_byte_swap + // CHECK-SAME: (%[[X:.+]]: !u32i) + // CHECK-NEXT: cir.return %[[X]] : !u32i + // CHECK-NEXT: } } _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
