@@ -553,26 +553,27 @@ void b1(bool a, bool b) {
553553// CIR: [[X:%[0-9]+]] = cir.alloca !cir.bool, !cir.ptr<!cir.bool>, ["x", init]
554554// CIR: cir.store %[[ARG0]], [[A]] : !cir.bool, !cir.ptr<!cir.bool>
555555// CIR: cir.store %[[ARG1]], [[B]] : !cir.bool, !cir.ptr<!cir.bool>
556- // CIR: [[AVAL:%[0-9]+]] = cir.load [[A]] : !cir.ptr<!cir.bool>, !cir.bool
556+ // CIR: [[AVAL:%[0-9]+]] = cir.load align(1) [[A]] : !cir.ptr<!cir.bool>, !cir.bool
557557// CIR: [[RES1:%[0-9]+]] = cir.ternary([[AVAL]], true {
558- // CIR: [[BVAL:%[0-9]+]] = cir.load [[B]] : !cir.ptr<!cir.bool>, !cir.bool
558+ // CIR: [[BVAL:%[0-9]+]] = cir.load align(1) [[B]] : !cir.ptr<!cir.bool>, !cir.bool
559559// CIR: cir.yield [[BVAL]] : !cir.bool
560560// CIR: }, false {
561561// CIR: [[FALSE:%[0-9]+]] = cir.const #false
562562// CIR: cir.yield [[FALSE]] : !cir.bool
563563// CIR: }) : (!cir.bool) -> !cir.bool
564- // CIR: cir.store [[RES1]], [[X]] : !cir.bool, !cir.ptr<!cir.bool>
565- // CIR: [[XVAL:%[0-9]+]] = cir.load [[X]] : !cir.ptr<!cir.bool>, !cir.bool
564+ // CIR: cir.store align(1) [[RES1]], [[X]] : !cir.bool, !cir.ptr<!cir.bool>
565+ // CIR: [[XVAL:%[0-9]+]] = cir.load align(1) [[X]] : !cir.ptr<!cir.bool>, !cir.bool
566566// CIR: [[RES2:%[0-9]+]] = cir.ternary([[XVAL]], true {
567567// CIR: [[TRUE:%[0-9]+]] = cir.const #true
568568// CIR: cir.yield [[TRUE]] : !cir.bool
569569// CIR: }, false {
570- // CIR: [[BVAL2:%[0-9]+]] = cir.load [[B]] : !cir.ptr<!cir.bool>, !cir.bool
570+ // CIR: [[BVAL2:%[0-9]+]] = cir.load align(1) [[B]] : !cir.ptr<!cir.bool>, !cir.bool
571571// CIR: cir.yield [[BVAL2]] : !cir.bool
572572// CIR: }) : (!cir.bool) -> !cir.bool
573- // CIR: cir.store [[RES2]], [[X]] : !cir.bool, !cir.ptr<!cir.bool>
573+ // CIR: cir.store align(1) [[RES2]], [[X]] : !cir.bool, !cir.ptr<!cir.bool>
574574// CIR: cir.return
575575
576+
576577// LLVM-LABEL: define void @_Z2b1bb(
577578// LLVM-SAME: i1 %[[ARG0:[0-9]+]], i1 %[[ARG1:[0-9]+]])
578579// LLVM: %[[A_ADDR:.*]] = alloca i8, i64 1
@@ -632,34 +633,35 @@ void b3(int a, int b, int c, int d) {
632633// CIR: cir.store %[[ARG1]], [[B]] : !s32i, !cir.ptr<!s32i>
633634// CIR: cir.store %[[ARG2]], [[C]] : !s32i, !cir.ptr<!s32i>
634635// CIR: cir.store %[[ARG3]], [[D]] : !s32i, !cir.ptr<!s32i>
635- // CIR: [[AVAL1:%[0-9]+]] = cir.load [[A]] : !cir.ptr<!s32i>, !s32i
636- // CIR: [[BVAL1:%[0-9]+]] = cir.load [[B]] : !cir.ptr<!s32i>, !s32i
636+ // CIR: [[AVAL1:%[0-9]+]] = cir.load align(4) [[A]] : !cir.ptr<!s32i>, !s32i
637+ // CIR: [[BVAL1:%[0-9]+]] = cir.load align(4) [[B]] : !cir.ptr<!s32i>, !s32i
637638// CIR: [[CMP1:%[0-9]+]] = cir.cmp(eq, [[AVAL1]], [[BVAL1]]) : !s32i, !cir.bool
638639// CIR: [[AND_RESULT:%[0-9]+]] = cir.ternary([[CMP1]], true {
639- // CIR: [[CVAL1:%[0-9]+]] = cir.load [[C]] : !cir.ptr<!s32i>, !s32i
640- // CIR: [[DVAL1:%[0-9]+]] = cir.load [[D]] : !cir.ptr<!s32i>, !s32i
640+ // CIR: [[CVAL1:%[0-9]+]] = cir.load align(4) [[C]] : !cir.ptr<!s32i>, !s32i
641+ // CIR: [[DVAL1:%[0-9]+]] = cir.load align(4) [[D]] : !cir.ptr<!s32i>, !s32i
641642// CIR: [[CMP2:%[0-9]+]] = cir.cmp(eq, [[CVAL1]], [[DVAL1]]) : !s32i, !cir.bool
642643// CIR: cir.yield [[CMP2]] : !cir.bool
643644// CIR: }, false {
644645// CIR: [[FALSE:%[0-9]+]] = cir.const #false
645646// CIR: cir.yield [[FALSE]] : !cir.bool
646647// CIR: }) : (!cir.bool) -> !cir.bool
647- // CIR: cir.store [[AND_RESULT]], [[X]] : !cir.bool, !cir.ptr<!cir.bool>
648- // CIR: [[AVAL2:%[0-9]+]] = cir.load [[A]] : !cir.ptr<!s32i>, !s32i
649- // CIR: [[BVAL2:%[0-9]+]] = cir.load [[B]] : !cir.ptr<!s32i>, !s32i
648+ // CIR: cir.store align(1) [[AND_RESULT]], [[X]] : !cir.bool, !cir.ptr<!cir.bool>
649+ // CIR: [[AVAL2:%[0-9]+]] = cir.load align(4) [[A]] : !cir.ptr<!s32i>, !s32i
650+ // CIR: [[BVAL2:%[0-9]+]] = cir.load align(4) [[B]] : !cir.ptr<!s32i>, !s32i
650651// CIR: [[CMP3:%[0-9]+]] = cir.cmp(eq, [[AVAL2]], [[BVAL2]]) : !s32i, !cir.bool
651652// CIR: [[OR_RESULT:%[0-9]+]] = cir.ternary([[CMP3]], true {
652653// CIR: [[TRUE:%[0-9]+]] = cir.const #true
653654// CIR: cir.yield [[TRUE]] : !cir.bool
654655// CIR: }, false {
655- // CIR: [[CVAL2:%[0-9]+]] = cir.load [[C]] : !cir.ptr<!s32i>, !s32i
656- // CIR: [[DVAL2:%[0-9]+]] = cir.load [[D]] : !cir.ptr<!s32i>, !s32i
656+ // CIR: [[CVAL2:%[0-9]+]] = cir.load align(4) [[C]] : !cir.ptr<!s32i>, !s32i
657+ // CIR: [[DVAL2:%[0-9]+]] = cir.load align(4) [[D]] : !cir.ptr<!s32i>, !s32i
657658// CIR: [[CMP4:%[0-9]+]] = cir.cmp(eq, [[CVAL2]], [[DVAL2]]) : !s32i, !cir.bool
658659// CIR: cir.yield [[CMP4]] : !cir.bool
659660// CIR: }) : (!cir.bool) -> !cir.bool
660- // CIR: cir.store [[OR_RESULT]], [[X]] : !cir.bool, !cir.ptr<!cir.bool>
661+ // CIR: cir.store align(1) [[OR_RESULT]], [[X]] : !cir.bool, !cir.ptr<!cir.bool>
661662// CIR: cir.return
662663
664+
663665// LLVM-LABEL: define void @_Z2b3iiii(
664666// LLVM-SAME: i32 %[[ARG0:[0-9]+]], i32 %[[ARG1:[0-9]+]], i32 %[[ARG2:[0-9]+]], i32 %[[ARG3:[0-9]+]])
665667// LLVM: %[[A_ADDR:.*]] = alloca i32, i64 1
0 commit comments