[clang] [CIR] Upstream ExtractMemberOp (PR #173512)
Amr Hesham via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 26 06:08:52 PST 2025
================
@@ -76,4 +76,17 @@ module {
// CHECK: cir.func @structs() {
// CHECK: %0 = cir.alloca !cir.ptr<!rec_Sc>, !cir.ptr<!cir.ptr<!rec_Sc>>, ["sc", init]
// CHECK: %1 = cir.alloca !cir.ptr<!rec_U>, !cir.ptr<!cir.ptr<!rec_U>>, ["u", init]
+
+cir.func @struct_extract_member_test() {
+ %0 = cir.const #cir.const_record<{#cir.int<1> : !u8i, #cir.int<2> : !u16i, #cir.int<3> : !u32i}> : !rec_Sc
+ %1 = cir.extract_member %0[0] : !rec_Sc -> !u8i
+ cir.return
+}
+
+// CHECK: cir.func{{.*}} @struct_extract_member_test() {
+// CHECK: %0 = cir.const #cir.const_record<{#cir.int<1> : !u8i, #cir.int<2> : !u16i, #cir.int<3> : !u32i}> : !rec_Sc
+// CHECK: %1 = cir.extract_member %0[0] : !rec_Sc -> !u8i
----------------
AmrDeveloper wrote:
```suggestion
// CHECK: %[[RECORD:.*]] = cir.const #cir.const_record<{#cir.int<1> : !u8i, #cir.int<2> : !u16i, #cir.int<3> : !u32i}> : !rec_Sc
// CHECK: %[[ELEM_0:.*]] = cir.extract_member %[[RECORD]][0] : !rec_Sc -> !u8i
```
https://github.com/llvm/llvm-project/pull/173512
More information about the cfe-commits
mailing list