xref: /aosp_15_r20/external/clang/test/CodeGenObjC/ivar-base-as-invariant-load.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -emit-llvm  -triple x86_64-apple-darwin -x objective-c %s -o - | FileCheck %s
2*67e74705SXin Li// rdar://10840980
3*67e74705SXin Li
4*67e74705SXin Li@interface A {
5*67e74705SXin Li        struct {
6*67e74705SXin Li                unsigned char a : 1;
7*67e74705SXin Li                unsigned char b : 1;
8*67e74705SXin Li                unsigned char c : 1;
9*67e74705SXin Li        } _flags;
10*67e74705SXin Li}
11*67e74705SXin Li
12*67e74705SXin Li@end
13*67e74705SXin Li
14*67e74705SXin Li@implementation A
15*67e74705SXin Li
16*67e74705SXin Li- (id)init {
17*67e74705SXin Li        _flags.a = 1;
18*67e74705SXin Li        _flags.b = 1;
19*67e74705SXin Li        _flags.c = 1;
20*67e74705SXin Li
21*67e74705SXin Li        return self;
22*67e74705SXin Li}
23*67e74705SXin Li
24*67e74705SXin Li@end
25*67e74705SXin Li
26*67e74705SXin Li// CHECK: [[T1:%.*]] = load i64, i64* @"OBJC_IVAR_$_A._flags", align 8, !invariant.load ![[MD_NUM:[0-9]+]]
27*67e74705SXin Li// CHECK: [[T2:%.*]] = load i64, i64* @"OBJC_IVAR_$_A._flags", align 8, !invariant.load ![[MD_NUM]]
28*67e74705SXin Li// CHECK: [[T3:%.*]] = load i64, i64* @"OBJC_IVAR_$_A._flags", align 8, !invariant.load ![[MD_NUM]]
29*67e74705SXin Li//
30