Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
PikachuHyA committed Nov 18, 2024
1 parent b7d811d commit 875907d
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 26 deletions.
25 changes: 13 additions & 12 deletions clang/test/CIR/CodeGen/binop.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -O1 -Wno-unused-value -fclangir -emit-cir %s -o %t.cir
// RUN: FileCheck --input-file=%t.cir %s

// CHECK: #tbaa[[TBAA_NO:.*]] = #cir.tbaa
void b0(int a, int b) {
int x = a * b;
x = x / b;
Expand Down Expand Up @@ -31,7 +32,7 @@ void b1(bool a, bool b) {
}

// CHECK: cir.ternary(%3, true
// CHECK-NEXT: %7 = cir.load tbaa({{.*}}) %1
// CHECK-NEXT: %7 = cir.load %1 : !cir.ptr<!cir.bool>, !cir.bool tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: cir.yield %7
// CHECK-NEXT: false {
// CHECK-NEXT: cir.const #false
Expand All @@ -41,7 +42,7 @@ void b1(bool a, bool b) {
// CHECK-NEXT: cir.const #true
// CHECK-NEXT: cir.yield
// CHECK-NEXT: false {
// CHECK-NEXT: %7 = cir.load tbaa({{.*}}) %1
// CHECK-NEXT: %7 = cir.load %1 : !cir.ptr<!cir.bool>, !cir.bool tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: cir.yield

void b2(bool a) {
Expand All @@ -54,13 +55,13 @@ void b2(bool a) {
// CHECK: %0 = cir.alloca {{.*}} ["a", init]
// CHECK: %1 = cir.alloca {{.*}} ["x", init]
// CHECK: %2 = cir.const #false
// CHECK-NEXT: cir.store tbaa({{.*}}) %2, %1
// CHECK-NEXT: %3 = cir.load tbaa({{.*}}) %0
// CHECK-NEXT: cir.store tbaa({{.*}}) %3, %1
// CHECK-NEXT: %4 = cir.load tbaa({{.*}}) %0
// CHECK-NEXT: cir.store tbaa({{.*}}) %4, %1
// CHECK-NEXT: cir.store %2, %1 : !cir.bool, !cir.ptr<!cir.bool> tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %3 = cir.load %0 : !cir.ptr<!cir.bool>, !cir.bool tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: cir.store %3, %1 : !cir.bool, !cir.ptr<!cir.bool> tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %4 = cir.load %0 : !cir.ptr<!cir.bool>, !cir.bool tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: cir.store %4, %1 : !cir.bool, !cir.ptr<!cir.bool> tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %5 = cir.const #true
// CHECK-NEXT: cir.store tbaa({{.*}}) %5, %1
// CHECK-NEXT: cir.store %5, %1 : !cir.bool, !cir.ptr<!cir.bool> tbaa([#tbaa[[TBAA_NO]]])

void b3(int a, int b, int c, int d) {
bool x = (a == b) && (c == d);
Expand All @@ -72,12 +73,12 @@ void b3(int a, int b, int c, int d) {
// CHECK-NEXT: %2 = cir.alloca {{.*}} ["c", init]
// CHECK-NEXT: %3 = cir.alloca {{.*}} ["d", init]
// CHECK-NEXT: %4 = cir.alloca {{.*}} ["x", init]
// CHECK: %5 = cir.load tbaa({{.*}}) %0
// CHECK-NEXT: %6 = cir.load tbaa({{.*}}) %1
// CHECK: %5 = cir.load %0 : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %6 = cir.load %1 : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %7 = cir.cmp(eq, %5, %6)
// CHECK-NEXT: cir.ternary(%7, true
// CHECK-NEXT: %13 = cir.load tbaa({{.*}}) %2
// CHECK-NEXT: %14 = cir.load tbaa({{.*}}) %3
// CHECK-NEXT: %13 = cir.load %2 : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %14 = cir.load %3 : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %15 = cir.cmp(eq, %13, %14)
// CHECK-NEXT: cir.yield %15
// CHECK-NEXT: }, false {
Expand Down
10 changes: 6 additions & 4 deletions clang/test/CIR/CodeGen/dynamic-cast-exact.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -std=c++20 -O1 -fclangir -emit-llvm -fno-clangir-call-conv-lowering -o %t.ll %s
// RUN: FileCheck --input-file=%t.ll --check-prefix=LLVM %s

// CHECK: #tbaa[[TBAA_NO:.*]] = #cir.tbaa

struct Base1 {
virtual ~Base1();
};
Expand All @@ -15,7 +17,7 @@ struct Derived final : Base1 {};

Derived *ptr_cast(Base1 *ptr) {
return dynamic_cast<Derived *>(ptr);
// CHECK: %[[#SRC:]] = cir.load tbaa({{.*}}) %{{.+}} : !cir.ptr<!cir.ptr<!ty_Base1_>>, !cir.ptr<!ty_Base1_>
// CHECK: %[[#SRC:]] = cir.load %{{.+}} : !cir.ptr<!cir.ptr<!ty_Base1_>>, !cir.ptr<!ty_Base1_> tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %[[#EXPECTED_VPTR:]] = cir.vtable.address_point(@_ZTV7Derived, vtable_index = 0, address_point_index = 2) : !cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>
// CHECK-NEXT: %[[#SRC_VPTR_PTR:]] = cir.cast(bitcast, %[[#SRC]] : !cir.ptr<!ty_Base1_>), !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>>
// CHECK-NEXT: %[[#SRC_VPTR:]] = cir.load %[[#SRC_VPTR_PTR]] : !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>>, !cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>
Expand All @@ -38,7 +40,7 @@ Derived *ptr_cast(Base1 *ptr) {

Derived &ref_cast(Base1 &ref) {
return dynamic_cast<Derived &>(ref);
// CHECK: %[[#SRC:]] = cir.load tbaa({{.*}}) %{{.+}} : !cir.ptr<!cir.ptr<!ty_Base1_>>, !cir.ptr<!ty_Base1_>
// CHECK: %[[#SRC:]] = cir.load %{{.+}} : !cir.ptr<!cir.ptr<!ty_Base1_>>, !cir.ptr<!ty_Base1_> tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %[[#EXPECTED_VPTR:]] = cir.vtable.address_point(@_ZTV7Derived, vtable_index = 0, address_point_index = 2) : !cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>
// CHECK-NEXT: %[[#SRC_VPTR_PTR:]] = cir.cast(bitcast, %[[#SRC]] : !cir.ptr<!ty_Base1_>), !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>>
// CHECK-NEXT: %[[#SRC_VPTR:]] = cir.load %[[#SRC_VPTR_PTR]] : !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>>, !cir.ptr<!cir.ptr<!cir.func<!u32i ()>>>
Expand All @@ -64,7 +66,7 @@ Derived &ref_cast(Base1 &ref) {

Derived *ptr_cast_always_fail(Base2 *ptr) {
return dynamic_cast<Derived *>(ptr);
// CHECK: %{{.+}} = cir.load tbaa({{.*}}) %{{.+}} : !cir.ptr<!cir.ptr<!ty_Base2_>>, !cir.ptr<!ty_Base2_>
// CHECK: %{{.+}} = cir.load %{{.+}} : !cir.ptr<!cir.ptr<!ty_Base2_>>, !cir.ptr<!ty_Base2_> tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %[[#RESULT:]] = cir.const #cir.ptr<null> : !cir.ptr<!ty_Derived>
// CHECK-NEXT: cir.store %[[#RESULT]], %{{.+}} : !cir.ptr<!ty_Derived>, !cir.ptr<!cir.ptr<!ty_Derived>>
}
Expand All @@ -75,7 +77,7 @@ Derived *ptr_cast_always_fail(Base2 *ptr) {

Derived &ref_cast_always_fail(Base2 &ref) {
return dynamic_cast<Derived &>(ref);
// CHECK: %{{.+}} = cir.load tbaa({{.*}}) %{{.+}} : !cir.ptr<!cir.ptr<!ty_Base2_>>, !cir.ptr<!ty_Base2_>
// CHECK: %{{.+}} = cir.load %{{.+}} : !cir.ptr<!cir.ptr<!ty_Base2_>>, !cir.ptr<!ty_Base2_> tbaa([#tbaa[[TBAA_NO]]])
// CHECK-NEXT: %{{.+}} = cir.const #cir.ptr<null> : !cir.ptr<!ty_Derived>
// CHECK-NEXT: cir.call @__cxa_bad_cast() : () -> ()
// CHECK-NEXT: cir.unreachable
Expand Down
6 changes: 3 additions & 3 deletions clang/test/CIR/CodeGen/tbaa.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
// CIR: #tbaa[[TBAA_NO:.*]] = #cir.tbaa
void f(int *a, float *b) {
// CIR: cir.scope
// CIR: %[[TMP1:.*]] = cir.load deref %{{.*}} : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!s32i> tbaa({{.*}})
// CIR: %[[TMP1:.*]] = cir.load deref %{{.*}} : !cir.ptr<!cir.ptr<!s32i>>, !cir.ptr<!s32i> tbaa([#tbaa[[TBAA_NO]]])
// CIR: %[[TMP2:.*]] = cir.load %[[TMP1]] : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CIR: cir.if
// CIR: %[[C2:.*]] = cir.const #cir.fp<2
// CIR: %[[TMP3:.*]] = cir.load deref %[[ARG_b:.*]] : !cir.ptr<!cir.ptr<!cir.float>>, !cir.ptr<!cir.float> tbaa({{.*}})
// CIR: %[[TMP3:.*]] = cir.load deref %[[ARG_b:.*]] : !cir.ptr<!cir.ptr<!cir.float>>, !cir.ptr<!cir.float> tbaa([#tbaa[[TBAA_NO]]])
// CIR: cir.store %[[C2]], %[[TMP3]] : !cir.float, !cir.ptr<!cir.float> tbaa([#tbaa[[TBAA_NO]]])
// CIR: else
// CIR: %[[C3:.*]] = cir.const #cir.fp<3
// CIR: %[[TMP4:.*]] = cir.load deref %[[ARG_b]] : !cir.ptr<!cir.ptr<!cir.float>>, !cir.ptr<!cir.float> tbaa({{.*}})
// CIR: %[[TMP4:.*]] = cir.load deref %[[ARG_b]] : !cir.ptr<!cir.ptr<!cir.float>>, !cir.ptr<!cir.float> tbaa([#tbaa[[TBAA_NO]]])
// CIR: cir.store %[[C3]], %[[TMP4]] : !cir.float, !cir.ptr<!cir.float> tbaa([#tbaa[[TBAA_NO]]])
if (*a == 1) {
*b = 2.0f;
Expand Down
12 changes: 7 additions & 5 deletions clang/test/CIR/CodeGen/ternary.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -O1 -fclangir -emit-cir %s -o %t.cir
// RUN: FileCheck --input-file=%t.cir %s

// CHECK: #tbaa[[TBAA_NO:.*]] = #cir.tbaa

int x(int y) {
return y > 0 ? 3 : 5;
}
Expand All @@ -9,7 +11,7 @@ int x(int y) {
// CHECK: %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["y", init] {alignment = 4 : i64}
// CHECK: %1 = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"] {alignment = 4 : i64}
// CHECK: cir.store %arg0, %0 : !s32i, !cir.ptr<!s32i>
// CHECK: %2 = cir.load tbaa({{.*}}) %0 : !cir.ptr<!s32i>, !s32i
// CHECK: %2 = cir.load %0 : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK: %3 = cir.const #cir.int<0> : !s32i
// CHECK: %4 = cir.cmp(gt, %2, %3) : !s32i, !cir.bool
// CHECK: %5 = cir.const #cir.int<3> : !s32i
Expand All @@ -34,7 +36,7 @@ void m(APIType api) {
// CHECK: cir.func @_Z1m7APIType
// CHECK: %0 = cir.alloca !u32i, !cir.ptr<!u32i>, ["api", init] {alignment = 4 : i64}
// CHECK: cir.store %arg0, %0 : !u32i, !cir.ptr<!u32i>
// CHECK: %1 = cir.load tbaa({{.*}}) %0 : !cir.ptr<!u32i>, !u32i
// CHECK: %1 = cir.load %0 : !cir.ptr<!u32i>, !u32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK: %2 = cir.cast(integral, %1 : !u32i), !s32i
// CHECK: %3 = cir.const #cir.int<0> : !u32i
// CHECK: %4 = cir.cast(integral, %3 : !u32i), !s32i
Expand All @@ -58,14 +60,14 @@ int foo(int a, int b) {
}

// CHECK: cir.func @_Z3fooii
// CHECK: [[A0:%.*]] = cir.load tbaa({{.*}}) {{.*}} : !cir.ptr<!s32i>, !s32i
// CHECK: [[B0:%.*]] = cir.load tbaa({{.*}}) {{.*}} : !cir.ptr<!s32i>, !s32i
// CHECK: [[A0:%.*]] = cir.load {{.*}} : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK: [[B0:%.*]] = cir.load {{.*}} : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK: [[CMP:%.*]] = cir.cmp(lt, [[A0]], [[B0]]) : !s32i, !cir.bool
// CHECK: [[RES:%.*]] = cir.ternary([[CMP]], true {
// CHECK: [[ZERO:%.*]] = cir.const #cir.int<0> : !s32i
// CHECK: cir.yield [[ZERO]] : !s32i
// CHECK: }, false {
// CHECK: [[A1:%.*]] = cir.load tbaa({{.*}}) {{.*}} : !cir.ptr<!s32i>, !s32i
// CHECK: [[A1:%.*]] = cir.load {{.*}} : !cir.ptr<!s32i>, !s32i tbaa([#tbaa[[TBAA_NO]]])
// CHECK: cir.yield [[A1]] : !s32i
// CHECK: }) : (!cir.bool) -> !s32i
// CHECK: [[RES_CAST:%.*]] = cir.cast(int_to_bool, [[RES]] : !s32i), !cir.bool
Expand Down
7 changes: 5 additions & 2 deletions clang/test/CIR/Transforms/ternary-fold.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -O1 -fclangir -emit-llvm %s -o %t.ll
// RUN: FileCheck --input-file=%t.ll --check-prefix=LLVM %s

// CIR-BEFORE: #tbaa[[TBAA_NO:.*]] = #cir.tbaa
// CIR-AFTER: #tbaa[[TBAA_NO:.*]] = #cir.tbaa

int test(bool x) {
return x ? 1 : 2;
}
Expand Down Expand Up @@ -34,7 +37,7 @@ int test2(bool cond) {
}

// CIR-BEFORE: cir.func @_Z5test2b
// CIR-BEFORE: %[[#COND:]] = cir.load tbaa({{.*}}) %{{.+}} : !cir.ptr<!cir.bool>, !cir.bool
// CIR-BEFORE: %[[#COND:]] = cir.load %{{.+}} : !cir.ptr<!cir.bool>, !cir.bool tbaa([#tbaa[[TBAA_NO]]])
// CIR-BEFORE-NEXT: %{{.+}} = cir.ternary(%[[#COND]], true {
// CIR-BEFORE-NEXT: %[[#A:]] = cir.const #cir.int<1> : !s32i
// CIR-BEFORE-NEXT: cir.yield %[[#A]] : !s32i
Expand All @@ -45,7 +48,7 @@ int test2(bool cond) {
// CIR-BEFORE: }

// CIR-AFTER: cir.func @_Z5test2b
// CIR-AFTER: %[[#COND:]] = cir.load tbaa({{.*}}) %{{.+}} : !cir.ptr<!cir.bool>, !cir.bool
// CIR-AFTER: %[[#COND:]] = cir.load %{{.+}} : !cir.ptr<!cir.bool>, !cir.bool tbaa([#tbaa[[TBAA_NO]]])
// CIR-AFTER-NEXT: %[[#A:]] = cir.const #cir.int<1> : !s32i
// CIR-AFTER-NEXT: %[[#B:]] = cir.const #cir.int<2> : !s32i
// CIR-AFTER-NEXT: %{{.+}} = cir.select if %[[#COND]] then %[[#A]] else %[[#B]] : (!cir.bool, !s32i, !s32i) -> !s32i
Expand Down

0 comments on commit 875907d

Please sign in to comment.