Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions clang/lib/CIR/CodeGen/CIRGenFunction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -275,9 +275,9 @@ void CIRGenFunction::emitAndUpdateRetAlloca(QualType ty, mlir::Location loc,
if (!endsWithReturn(CurFuncDecl))
++NumReturnExprs;
} else {
auto addr = emitAlloca("__retval", ty, loc, alignment);
FnRetAlloca = addr;
ReturnValue = Address(addr, alignment);
Address allocaAddr = Address::invalid();
ReturnValue = CreateMemTemp(ty, alignment, loc, "__retval", &allocaAddr);
FnRetAlloca = allocaAddr.getPointer();

// Tell the epilog emitter to autorelease the result. We do this now so
// that various specialized functions can suppress it during their IR -
Expand Down Expand Up @@ -481,7 +481,7 @@ cir::ReturnOp CIRGenFunction::LexicalScope::emitReturn(mlir::Location loc) {

if (CGF.FnRetCIRTy.has_value()) {
// If there's anything to return, load it first.
auto val = LoadOp::create(builder, loc, *CGF.FnRetCIRTy, *CGF.FnRetAlloca);
auto val = builder.createLoad(loc, CGF.ReturnValue);
return ReturnOp::create(builder, loc, llvm::ArrayRef(val.getResult()));
}
return ReturnOp::create(builder, loc);
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/CIR/CodeGen/CIRGenStmt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,7 @@ mlir::LogicalResult CIRGenFunction::emitReturnStmt(const ReturnStmt &S) {
switch (CIRGenFunction::getEvaluationKind(RV->getType())) {
case cir::TEK_Scalar:
V = emitScalarExpr(RV);
builder.CIRBaseBuilderTy::createStore(loc, V, *FnRetAlloca);
builder.createStore(loc, V, ReturnValue);
break;
case cir::TEK_Complex:
emitComplexExprIntoLValue(RV,
Expand Down
6 changes: 3 additions & 3 deletions clang/test/CIR/CallConvLowering/AArch64/union.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ typedef union {
// CIR: %[[#V0:]] = cir.alloca !rec_U, !cir.ptr<!rec_U>, [""] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.cast integral %arg0 : !u64i -> !u32i
// CIR: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_U> -> !cir.ptr<!u32i>
// CIR: cir.store %[[#V1]], %[[#V2]] : !u32i, !cir.ptr<!u32i>
// CIR: cir.store{{.*}} %[[#V1]], %[[#V2]] : !u32i, !cir.ptr<!u32i>
// CIR: cir.return

// LLVM: void @foo(i64 %[[#V0:]]
Expand All @@ -25,9 +25,9 @@ void foo(U u) {}

// CIR: cir.func {{.*}} @init() -> !u32i
// CIR: %[[#V0:]] = cir.alloca !rec_U, !cir.ptr<!rec_U>, ["__retval"] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.load %[[#V0]] : !cir.ptr<!rec_U>, !rec_U
// CIR: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!rec_U>, !rec_U
// CIR: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_U> -> !cir.ptr<!u32i>
// CIR: %[[#V3:]] = cir.load %[[#V2]] : !cir.ptr<!u32i>, !u32i
// CIR: %[[#V3:]] = cir.load{{.*}} %[[#V2]] : !cir.ptr<!u32i>, !u32i
// CIR: cir.return %[[#V3]] : !u32i

// LLVM: i32 @init()
Expand Down
10 changes: 5 additions & 5 deletions clang/test/CIR/CallConvLowering/x86_64/int128.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ __int128 test1(__int128 a, __int128 b) {
// CHECK: %[[#SLOT_A:]] = cir.alloca !s128i, !cir.ptr<!s128i>
// CHECK-NEXT: %[[#SLOT_A2:]] = cir.cast bitcast %[[#SLOT_A]] : !cir.ptr<!s128i> -> !cir.ptr<![[I128_STRUCT]]>
// CHECK-NEXT: %[[#SLOT_A_LO:]] = cir.get_member %[[#SLOT_A2]][0] {name = ""} : !cir.ptr<![[I128_STRUCT]]> -> !cir.ptr<!s64i>
// CHECK-NEXT: cir.store %[[ARG0]], %[[#SLOT_A_LO]] : !s64i, !cir.ptr<!s64i>
// CHECK-NEXT: cir.store{{.*}} %[[ARG0]], %[[#SLOT_A_LO]] : !s64i, !cir.ptr<!s64i>
// CHECK-NEXT: %[[#SLOT_A_HI:]] = cir.get_member %[[#SLOT_A2]][1] {name = ""} : !cir.ptr<![[I128_STRUCT]]> -> !cir.ptr<!s64i>
// CHECK-NEXT: cir.store %arg1, %[[#SLOT_A_HI]] : !s64i, !cir.ptr<!s64i>
// CHECK-NEXT: cir.store{{.*}} %arg1, %[[#SLOT_A_HI]] : !s64i, !cir.ptr<!s64i>
// CHECK-NEXT: %[[#SLOT_B:]] = cir.alloca !s128i, !cir.ptr<!s128i>
// CHECK-NEXT: %[[#SLOT_B2:]] = cir.cast bitcast %[[#SLOT_B]] : !cir.ptr<!s128i> -> !cir.ptr<![[I128_STRUCT]]>
// CHECK-NEXT: %[[#SLOT_B_LO:]] = cir.get_member %[[#SLOT_B2]][0] {name = ""} : !cir.ptr<![[I128_STRUCT]]> -> !cir.ptr<!s64i>
// CHECK-NEXT: cir.store %arg2, %[[#SLOT_B_LO]] : !s64i, !cir.ptr<!s64i>
// CHECK-NEXT: cir.store{{.*}} %arg2, %[[#SLOT_B_LO]] : !s64i, !cir.ptr<!s64i>
// CHECK-NEXT: %[[#SLOT_B_HI:]] = cir.get_member %[[#SLOT_B2]][1] {name = ""} : !cir.ptr<![[I128_STRUCT]]> -> !cir.ptr<!s64i>
// CHECK-NEXT: cir.store %arg3, %[[#SLOT_B_HI]] : !s64i, !cir.ptr<!s64i>
// CHECK-NEXT: cir.store{{.*}} %arg3, %[[#SLOT_B_HI]] : !s64i, !cir.ptr<!s64i>
// CHECK-NEXT: %[[#SLOT_RET:]] = cir.alloca !s128i, !cir.ptr<!s128i>, ["__retval"]

// LLVM: %[[#A_SLOT:]] = alloca i128, i64 1, align 4
Expand All @@ -38,7 +38,7 @@ __int128 test1(__int128 a, __int128 b) {
// CHECK: %[[#A:]] = cir.load{{.*}} %[[#SLOT_A]] : !cir.ptr<!s128i>, !s128i
// CHECK-NEXT: %[[#B:]] = cir.load{{.*}} %[[#SLOT_B]] : !cir.ptr<!s128i>, !s128i
// CHECK-NEXT: %[[#SUM:]] = cir.binop(add, %[[#A]], %[[#B]]) nsw : !s128i
// CHECK-NEXT: cir.store %[[#SUM]], %[[#SLOT_RET]] : !s128i, !cir.ptr<!s128i>
// CHECK-NEXT: cir.store{{.*}} %[[#SUM]], %[[#SLOT_RET]] : !s128i, !cir.ptr<!s128i>

// LLVM: %[[#A:]] = load i128, ptr %5, align 16
// LLVM-NEXT: %[[#B:]] = load i128, ptr %8, align 16
Expand Down
4 changes: 2 additions & 2 deletions clang/test/CIR/CodeGen/AArch64/neon-arith.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ float32_t test_vrndns_f32(float32_t a) {
// CIR: cir.store %arg0, [[ARG_SAVE0:%.*]] : !cir.float, !cir.ptr<!cir.float>
// CIR: [[FUNC_ARG:%.*]] = cir.load{{.*}} [[ARG_SAVE]] : !cir.ptr<!cir.float>, !cir.float
// CIR: [[FUNC_RES:%.*]] = cir.call @vrndns_f32([[FUNC_ARG]]) : (!cir.float) -> !cir.float
// CIR: cir.store [[FUNC_RES]], [[RET_P:%.*]] : !cir.float, !cir.ptr<!cir.float>
// CIR: cir.store{{.*}} [[FUNC_RES]], [[RET_P:%.*]] : !cir.float, !cir.ptr<!cir.float>
// CIR: [[RET_VAL:%.*]] = cir.load{{.*}} [[RET_P]] : !cir.ptr<!cir.float>, !cir.float
// CIR: cir.return [[RET_VAL]] : !cir.float loc

Expand All @@ -50,7 +50,7 @@ float32x2_t test_vrnda_f32(float32x2_t a) {
// CIR: cir.store %arg0, [[ARG_SAVE0:%.*]] : !cir.vector<!cir.float x 2>, !cir.ptr<!cir.vector<!cir.float x 2>>
// CIR: [[FUNC_ARG:%.*]] = cir.load{{.*}} [[ARG_SAVE]] : !cir.ptr<!cir.vector<!cir.float x 2>>, !cir.vector<!cir.float x 2>
// CIR: [[FUNC_RES:%.*]] = cir.call @vrnda_f32([[FUNC_ARG]]) : (!cir.vector<!cir.float x 2>) -> !cir.vector<!cir.float x 2>
// CIR: cir.store [[FUNC_RES]], [[RET_P:%.*]] : !cir.vector<!cir.float x 2>, !cir.ptr<!cir.vector<!cir.float x 2>>
// CIR: cir.store{{.*}} [[FUNC_RES]], [[RET_P:%.*]] : !cir.vector<!cir.float x 2>, !cir.ptr<!cir.vector<!cir.float x 2>>
// CIR: [[RET_VAL:%.*]] = cir.load{{.*}} [[RET_P]] : !cir.ptr<!cir.vector<!cir.float x 2>>, !cir.vector<!cir.float x 2>
// CIR: cir.return [[RET_VAL]] : !cir.vector<!cir.float x 2>

Expand Down
12 changes: 6 additions & 6 deletions clang/test/CIR/CodeGen/aapcs-volatile-bitfields.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ int check_load(st1 *s1) {
// CIR: [[MEMBER:%.*]] = cir.get_member [[LOAD]][0] {name = "b"} : !cir.ptr<!rec_st1> -> !cir.ptr<!u16i>
// CIR: [[BITFI:%.*]] = cir.get_bitfield align(4) (#bfi_b, [[MEMBER]] {is_volatile} : !cir.ptr<!u16i>) -> !u32i
// CIR: [[CAST:%.*]] = cir.cast integral [[BITFI]] : !u32i -> !s32i
// CIR: cir.store [[CAST]], [[RETVAL:%.*]] : !s32i, !cir.ptr<!s32i>
// CIR: [[RET:%.*]] = cir.load [[RETVAL]] : !cir.ptr<!s32i>, !s32i
// CIR: cir.store{{.*}} [[CAST]], [[RETVAL:%.*]] : !s32i, !cir.ptr<!s32i>
// CIR: [[RET:%.*]] = cir.load{{.*}} [[RETVAL]] : !cir.ptr<!s32i>, !s32i
// CIR: cir.return [[RET]] : !s32i

// LLVM:define dso_local i32 @check_load
Expand Down Expand Up @@ -119,8 +119,8 @@ int check_load_exception(st3 *s3) {
// CIR: [[MEMBER:%.*]] = cir.get_member [[LOAD]][2] {name = "b"} : !cir.ptr<!rec_st3> -> !cir.ptr<!u8i>
// CIR: [[BITFI:%.*]] = cir.get_bitfield align(4) (#bfi_b1, [[MEMBER]] {is_volatile} : !cir.ptr<!u8i>) -> !u32i
// CIR: [[CAST:%.*]] = cir.cast integral [[BITFI]] : !u32i -> !s32i
// CIR: cir.store [[CAST]], [[RETVAL:%.*]] : !s32i, !cir.ptr<!s32i>
// CIR: [[RET:%.*]] = cir.load [[RETVAL]] : !cir.ptr<!s32i>, !s32i
// CIR: cir.store{{.*}} [[CAST]], [[RETVAL:%.*]] : !s32i, !cir.ptr<!s32i>
// CIR: [[RET:%.*]] = cir.load{{.*}} [[RETVAL]] : !cir.ptr<!s32i>, !s32i
// CIR: cir.return [[RET]] : !s32i

// LLVM:define dso_local i32 @check_load_exception
Expand Down Expand Up @@ -155,8 +155,8 @@ int clip_load_exception2(clip *c) {
// CIR: [[LOAD:%.*]] = cir.load align(8) {{.*}} : !cir.ptr<!cir.ptr<!rec_clip>>, !cir.ptr<!rec_clip>
// CIR: [[MEMBER:%.*]] = cir.get_member [[LOAD]][0] {name = "a"} : !cir.ptr<!rec_clip> -> !cir.ptr<!cir.array<!u8i x 3>>
// CIR: [[BITFI:%.*]] = cir.get_bitfield align(4) (#bfi_a1, [[MEMBER]] {is_volatile} : !cir.ptr<!cir.array<!u8i x 3>>) -> !s32i
// CIR: cir.store [[BITFI]], [[RETVAL:%.*]] : !s32i, !cir.ptr<!s32i>
// CIR: [[RET:%.*]] = cir.load [[RETVAL]] : !cir.ptr<!s32i>, !s32i
// CIR: cir.store{{.*}} [[BITFI]], [[RETVAL:%.*]] : !s32i, !cir.ptr<!s32i>
// CIR: [[RET:%.*]] = cir.load{{.*}} [[RETVAL]] : !cir.ptr<!s32i>, !s32i
// CIR: cir.return [[RET]] : !s32i

// LLVM:define dso_local i32 @clip_load_exception2
Expand Down
10 changes: 5 additions & 5 deletions clang/test/CIR/CodeGen/builtin-constant-evaluated.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ auto func() -> int {
// CIR: cir.func {{.*}} @_Z4funcv()
// CIR-NEXT: %[[RET_VAL:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"] {alignment = 4 : i64}
// CIR-NEXT: %[[VAL:.*]] = cir.const #cir.int<0> : !s32i
// CIR-NEXT: cir.store %[[VAL]], %[[RET_VAL]] : !s32i, !cir.ptr<!s32i>
// CIR-NEXT: cir.store{{.*}} %[[VAL]], %[[RET_VAL]] : !s32i, !cir.ptr<!s32i>
// CIR-NEXT: %[[TMP:.*]] = cir.load{{.*}} %0 : !cir.ptr<!s32i>, !s32i
// CIR-NEXT: cir.return %[[TMP]] : !s32i
}
Expand All @@ -17,8 +17,8 @@ auto func2() -> int {
// CIR: cir.func {{.*}} @_Z5func2v()
// CIR-NEXT: %[[RET_VAL:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"]
// CIR-NEXT: %[[VAL:.*]] = cir.const #cir.int<1> : !s32i
// CIR-NEXT: cir.store %[[VAL]], %[[RET_VAL]] : !s32i, !cir.ptr<!s32i>
// CIR-NEXT: %[[TMP:.*]] = cir.load %[[RET_VAL]] : !cir.ptr<!s32i>, !s32i
// CIR-NEXT: cir.store{{.*}} %[[VAL]], %[[RET_VAL]] : !s32i, !cir.ptr<!s32i>
// CIR-NEXT: %[[TMP:.*]] = cir.load{{.*}} %[[RET_VAL]] : !cir.ptr<!s32i>, !s32i
// CIR-NEXT: cir.return %[[TMP]] : !s32i
}

Expand All @@ -28,7 +28,7 @@ auto func3() -> int {
// CIR: cir.func {{.*}} @_Z5func3v()
// CIR-NEXT: %[[RET_VAL:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"]
// CIR-NEXT: %[[VAL:.*]] = cir.const #cir.int<2> : !s32i
// CIR-NEXT: cir.store %[[VAL]], %[[RET_VAL]] : !s32i, !cir.ptr<!s32i>
// CIR-NEXT: %[[TMP:.*]] = cir.load %[[RET_VAL]] : !cir.ptr<!s32i>, !s32i
// CIR-NEXT: cir.store{{.*}} %[[VAL]], %[[RET_VAL]] : !s32i, !cir.ptr<!s32i>
// CIR-NEXT: %[[TMP:.*]] = cir.load{{.*}} %[[RET_VAL]] : !cir.ptr<!s32i>, !s32i
// CIR-NEXT: cir.return %[[TMP]] : !s32i
}
2 changes: 1 addition & 1 deletion clang/test/CIR/CodeGen/builtin-constant-p.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ int foo() {
// CIR: [[TMP2:%.*]] = cir.load{{.*}} [[TMP1]] : !cir.ptr<!s32i>, !s32i
// CIR: [[TMP3:%.*]] = cir.is_constant([[TMP2]] : !s32i) : !cir.bool
// CIR: [[TMP4:%.*]] = cir.cast bool_to_int [[TMP3]] : !cir.bool -> !s32i
// CIR: cir.store [[TMP4]], [[TMP0]] : !s32i, !cir.ptr<!s32i>
// CIR: cir.store{{.*}} [[TMP4]], [[TMP0]] : !s32i, !cir.ptr<!s32i>
// CIR: [[TMP5:%.*]] = cir.load{{.*}} [[TMP0]] : !cir.ptr<!s32i>, !s32i
// CIR: cir.return [[TMP5]] : !s32i

Expand Down
16 changes: 8 additions & 8 deletions clang/test/CIR/CodeGen/builtin-fcmp-sse.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ __m128 test_cmpnleps(__m128 A, __m128 B) {
// CIR: [[CMP:%.*]] = cir.vec.cmp(le, [[A:%.*]], [[B:%.*]]) : !cir.vector<!cir.float x 4>, !cir.vector<!s32i x 4>
// CIR: [[NOTCMP:%.*]] = cir.unary(not, [[CMP]]) : !cir.vector<!s32i x 4>, !cir.vector<!s32i x 4>
// CIR-NEXT: [[CAST:%.*]] = cir.cast bitcast [[NOTCMP:%.*]] : !cir.vector<!s32i x 4> -> !cir.vector<!cir.float x 4>
// CIR-NEXT: cir.store [[CAST]], [[ALLOCA:%.*]] : !cir.vector<!cir.float x 4>, !cir.ptr<!cir.vector<!cir.float x 4>>
// CIR-NEXT: [[LD:%.*]] = cir.load [[ALLOCA]] :
// CIR-NEXT: cir.store{{.*}} [[CAST]], [[ALLOCA:%.*]] : !cir.vector<!cir.float x 4>, !cir.ptr<!cir.vector<!cir.float x 4>>
// CIR-NEXT: [[LD:%.*]] = cir.load{{.*}} [[ALLOCA]] :
// CIR-NEXT: cir.return [[LD]] : !cir.vector<!cir.float x 4>

// LLVM-LABEL: test_cmpnleps
Expand All @@ -34,8 +34,8 @@ __m128d test_cmpnlepd(__m128d A, __m128d B) {
// CIR: [[CMP:%.*]] = cir.vec.cmp(le, [[A:%.*]], [[B:%.*]]) : !cir.vector<!cir.double x 2>, !cir.vector<!s64i x 2>
// CIR-NEXT: [[NOTCMP:%.*]] = cir.unary(not, [[CMP]]) : !cir.vector<!s64i x 2>, !cir.vector<!s64i x 2>
// CIR-NEXT: [[CAST:%.*]] = cir.cast bitcast [[NOTCMP]] : !cir.vector<!s64i x 2> -> !cir.vector<!cir.double x 2>
// CIR-NEXT: cir.store [[CAST]], [[ALLOCA:%.*]] : !cir.vector<!cir.double x 2>, !cir.ptr<!cir.vector<!cir.double x 2>>
// CIR-NEXT: [[LD:%.*]] = cir.load [[ALLOCA]] :
// CIR-NEXT: cir.store{{.*}} [[CAST]], [[ALLOCA:%.*]] : !cir.vector<!cir.double x 2>, !cir.ptr<!cir.vector<!cir.double x 2>>
// CIR-NEXT: [[LD:%.*]] = cir.load{{.*}} [[ALLOCA]] :
// CIR-NEXT: cir.return [[LD]] : !cir.vector<!cir.double x 2>

// LLVM-LABEL: test_cmpnlepd
Expand All @@ -58,8 +58,8 @@ __m128 test_cmpnltps(__m128 A, __m128 B) {
// CIR: [[CMP:%.*]] = cir.vec.cmp(lt, [[A:%.*]], [[B:%.*]]) : !cir.vector<!cir.float x 4>, !cir.vector<!s32i x 4>
// CIR: [[NOTCMP:%.*]] = cir.unary(not, [[CMP]]) : !cir.vector<!s32i x 4>, !cir.vector<!s32i x 4>
// CIR-NEXT: [[CAST:%.*]] = cir.cast bitcast [[NOTCMP:%.*]] : !cir.vector<!s32i x 4> -> !cir.vector<!cir.float x 4>
// CIR-NEXT: cir.store [[CAST]], [[ALLOCA:%.*]] : !cir.vector<!cir.float x 4>, !cir.ptr<!cir.vector<!cir.float x 4>>
// CIR-NEXT: [[LD:%.*]] = cir.load [[ALLOCA]] :
// CIR-NEXT: cir.store{{.*}} [[CAST]], [[ALLOCA:%.*]] : !cir.vector<!cir.float x 4>, !cir.ptr<!cir.vector<!cir.float x 4>>
// CIR-NEXT: [[LD:%.*]] = cir.load{{.*}} [[ALLOCA]] :
// CIR-NEXT: cir.return [[LD]] : !cir.vector<!cir.float x 4>

// LLVM-LABEL: test_cmpnltps
Expand All @@ -82,8 +82,8 @@ __m128d test_cmpnltpd(__m128d A, __m128d B) {
// CIR: [[CMP:%.*]] = cir.vec.cmp(lt, [[A:%.*]], [[B:%.*]]) : !cir.vector<!cir.double x 2>, !cir.vector<!s64i x 2>
// CIR-NEXT: [[NOTCMP:%.*]] = cir.unary(not, [[CMP]]) : !cir.vector<!s64i x 2>, !cir.vector<!s64i x 2>
// CIR-NEXT: [[CAST:%.*]] = cir.cast bitcast [[NOTCMP]] : !cir.vector<!s64i x 2> -> !cir.vector<!cir.double x 2>
// CIR-NEXT: cir.store [[CAST]], [[ALLOCA:%.*]] : !cir.vector<!cir.double x 2>, !cir.ptr<!cir.vector<!cir.double x 2>>
// CIR-NEXT: [[LD:%.*]] = cir.load [[ALLOCA]] :
// CIR-NEXT: cir.store{{.*}} [[CAST]], [[ALLOCA:%.*]] : !cir.vector<!cir.double x 2>, !cir.ptr<!cir.vector<!cir.double x 2>>
// CIR-NEXT: [[LD:%.*]] = cir.load{{.*}} [[ALLOCA]] :
// CIR-NEXT: cir.return [[LD]] : !cir.vector<!cir.double x 2>

// LLVM-LABEL: test_cmpnltpd
Expand Down
2 changes: 1 addition & 1 deletion clang/test/CIR/CodeGen/builtin-isinf-sign.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ int test_float_isinf_sign(float x) {
// CIR: %[[C_m1:.*]] = cir.const #cir.int<-1> : !s32i
// CIR: %[[TMP4:.*]] = cir.select if %[[IS_NEG]] then %[[C_m1]] else %[[C_1]] : (!cir.bool, !s32i, !s32i) -> !s32i
// CIR: %[[RET:.*]] = cir.select if %[[IS_INF]] then %[[TMP4]] else %[[C_0]] : (!cir.bool, !s32i, !s32i) -> !s32i
// CIR: cir.store %[[RET]], %{{.*}} : !s32i, !cir.ptr<!s32i>
// CIR: cir.store{{.*}} %[[RET]], %{{.*}} : !s32i, !cir.ptr<!s32i>

// LLVM-LABEL: test_float_isinf_sign
// LLVM: %[[TMP0:.*]] = load float, ptr %{{.*}}
Expand Down
4 changes: 2 additions & 2 deletions clang/test/CIR/CodeGen/builtins-memory.c
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,8 @@ void* test_builtin_mempcpy(void *dest, void *src, size_t n) {
// CIR: [[CAST2:%.*]] = cir.cast bitcast [[DST]] : !cir.ptr<!void> -> !cir.ptr<!cir.ptr<!u8i>>
// CIR: [[GEP:%.*]] = cir.ptr_stride [[CAST2]], [[NUM]] : (!cir.ptr<!cir.ptr<!u8i>>, !u64i) -> !cir.ptr<!cir.ptr<!u8i>>
// CIR: [[CAST3:%.*]] = cir.cast bitcast [[ALLOCA]]
// CIR: cir.store [[GEP]], [[CAST3:%.*]]
// CIR-NEXT: [[LD:%.*]] = cir.load [[ALLOCA]]
// CIR: cir.store{{.*}} [[GEP]], [[CAST3:%.*]]
// CIR-NEXT: [[LD:%.*]] = cir.load{{.*}} [[ALLOCA]]
// CIR-NEXT: cir.return [[LD]]

// LLVM-LABEL: test_builtin_mempcpy
Expand Down
12 changes: 6 additions & 6 deletions clang/test/CIR/CodeGen/builtins.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ int *test_addressof() {

// CIR-LABEL: test_addressof
// CIR: [[ADDR:%.*]] = cir.get_global @s : !cir.ptr<!s32i>
// CIR: cir.store [[ADDR]], [[SAVE:%.*]] : !cir.ptr<!s32i>, !cir.ptr<!cir.ptr<!s32i>>
// CIR: [[RES:%.*]] = cir.load [[SAVE]] : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!s32i>
// CIR: cir.store{{.*}} [[ADDR]], [[SAVE:%.*]] : !cir.ptr<!s32i>, !cir.ptr<!cir.ptr<!s32i>>
// CIR: [[RES:%.*]] = cir.load{{.*}} [[SAVE]] : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!s32i>
// CIR: cir.return [[RES]] : !cir.ptr<!s32i>

// LLVM-LABEL: test_addressof
Expand All @@ -31,8 +31,8 @@ int *test_std_addressof() {

// CIR-LABEL: test_std_addressof
// CIR: [[ADDR:%.*]] = cir.get_global @s : !cir.ptr<!s32i>
// CIR: cir.store [[ADDR]], [[SAVE:%.*]] : !cir.ptr<!s32i>, !cir.ptr<!cir.ptr<!s32i>>
// CIR: [[RES:%.*]] = cir.load [[SAVE]] : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!s32i>
// CIR: cir.store{{.*}} [[ADDR]], [[SAVE:%.*]] : !cir.ptr<!s32i>, !cir.ptr<!cir.ptr<!s32i>>
// CIR: [[RES:%.*]] = cir.load{{.*}} [[SAVE]] : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!s32i>
// CIR: cir.return [[RES]] : !cir.ptr<!s32i>

// LLVM-LABEL: test_std_addressof
Expand All @@ -47,8 +47,8 @@ int *test_std_addressof2() {

// CIR-LABEL: test_std_addressof2
// CIR: [[ADDR:%.*]] = cir.get_global @s : !cir.ptr<!s32i>
// CIR: cir.store [[ADDR]], [[SAVE:%.*]] : !cir.ptr<!s32i>, !cir.ptr<!cir.ptr<!s32i>>
// CIR: [[RES:%.*]] = cir.load [[SAVE]] : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!s32i>
// CIR: cir.store{{.*}} [[ADDR]], [[SAVE:%.*]] : !cir.ptr<!s32i>, !cir.ptr<!cir.ptr<!s32i>>
// CIR: [[RES:%.*]] = cir.load{{.*}} [[SAVE]] : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!s32i>
// CIR: cir.return [[RES]] : !cir.ptr<!s32i>

/// LLVM-LABEL: test_std_addressof2
Expand Down
2 changes: 1 addition & 1 deletion clang/test/CIR/CodeGen/call-via-class-member-funcptr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ void fn1() { f f1; }
// CIR: [[H_PTR:%.*]] = cir.get_global @h : !cir.ptr<!s32i> loc(#loc18)
// CIR: [[H_VAL:%.*]] = cir.load{{.*}} [[H_PTR]] : !cir.ptr<!s32i>, !s32i
// CIR: [[RET1_VAL:%.*]] = cir.call @_ZN1a1bEi([[H_VAL]]) : (!s32i) -> !cir.ptr<!s8i>
// CIR: cir.store [[RET1_VAL]], [[RET1_P:%.*]] : !cir.ptr<!s8i>, !cir.ptr<!cir.ptr<!s8i>>
// CIR: cir.store{{.*}} [[RET1_VAL]], [[RET1_P:%.*]] : !cir.ptr<!s8i>, !cir.ptr<!cir.ptr<!s8i>>
// CIR: [[RET1_VAL2:%.*]] = cir.load{{.*}} [[RET1_P]] : !cir.ptr<!cir.ptr<!s8i>>, !cir.ptr<!s8i>
// %7 = cir.load %1 : !cir.ptr<!cir.ptr<!s8i>>, !cir.ptr<!s8i>
// CIR: cir.return [[RET1_VAL2]] : !cir.ptr<!s8i>
Expand Down
8 changes: 4 additions & 4 deletions clang/test/CIR/CodeGen/call.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ void d(void) {
// CHECK: %3 = cir.load{{.*}} %0 : !cir.ptr<!s32i>, !s32i
// CHECK: %4 = cir.load{{.*}} %1 : !cir.ptr<!s32i>, !s32i
// CHECK: %5 = cir.binop(add, %3, %4) nsw : !s32i
// CHECK: cir.store %5, %2 : !s32i, !cir.ptr<!s32i>
// CHECK: cir.store{{.*}} %5, %2 : !s32i, !cir.ptr<!s32i>
// CHECK: %6 = cir.load{{.*}} %2 : !cir.ptr<!s32i>, !s32i
// CHECK: cir.return %6
// CHECK: }
Expand All @@ -40,7 +40,7 @@ void d(void) {
// CHECK: %3 = cir.load{{.*}} %0 : !cir.ptr<!cir.double>, !cir.double
// CHECK: %4 = cir.load{{.*}} %1 : !cir.ptr<!cir.double>, !cir.double
// CHECK: %5 = cir.binop(add, %3, %4) : !cir.double
// CHECK: cir.store %5, %2 : !cir.double, !cir.ptr<!cir.double>
// CHECK: cir.store{{.*}} %5, %2 : !cir.double, !cir.ptr<!cir.double>
// CHECK: %6 = cir.load{{.*}} %2 : !cir.ptr<!cir.double>, !cir.double
// CHECK: cir.return %6 : !cir.double
// CHECK: }
Expand All @@ -65,7 +65,7 @@ void d(void) {
// CXX-NEXT: %3 = cir.load{{.*}} %0 : !cir.ptr<!s32i>, !s32i
// CXX-NEXT: %4 = cir.load{{.*}} %1 : !cir.ptr<!s32i>, !s32i
// CXX-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
// CXX-NEXT: cir.store %5, %2 : !s32i, !cir.ptr<!s32i>
// CXX-NEXT: cir.store{{.*}} %5, %2 : !s32i, !cir.ptr<!s32i>
// CXX-NEXT: %6 = cir.load{{.*}} %2 : !cir.ptr<!s32i>, !s32i
// CXX-NEXT: cir.return %6
// CXX-NEXT: }
Expand All @@ -78,7 +78,7 @@ void d(void) {
// CXX-NEXT: %3 = cir.load{{.*}} %0 : !cir.ptr<!cir.double>, !cir.double
// CXX-NEXT: %4 = cir.load{{.*}} %1 : !cir.ptr<!cir.double>, !cir.double
// CXX-NEXT: %5 = cir.binop(add, %3, %4) : !cir.double
// CXX-NEXT: cir.store %5, %2 : !cir.double, !cir.ptr<!cir.double>
// CXX-NEXT: cir.store{{.*}} %5, %2 : !cir.double, !cir.ptr<!cir.double>
// CXX-NEXT: %6 = cir.load{{.*}} %2 : !cir.ptr<!cir.double>, !cir.double
// CXX-NEXT: cir.return %6 : !cir.double
// CXX-NEXT: }
Expand Down
Loading