Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More flexible and consistent matching patterns in tests #134

Merged
merged 10 commits into from
Jul 12, 2024
82 changes: 41 additions & 41 deletions circom/tests/arrays/array8.circom
Original file line number Diff line number Diff line change
Expand Up @@ -28,66 +28,66 @@ template ArrayReturnTemplate(n) {

component main = ArrayReturnTemplate(4);

//CHECK-LABEL: define{{.*}} i256* @return_array_B_{{[0-9]+}}
//CHECK-SAME: (i256* %[[ARENA:[0-9a-zA-Z_.]+]]){{.*}} {
//CHECK: %[[SRC_PTR:[0-9a-zA-Z_.]+]] = call i256* @return_array_A_{{[0-9\.]+}}(i256* %{{.*}})
//CHECK-NEXT: %[[DST_PTR:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[ARENA]], i32 2
//CHECK-NEXT: %[[COPY_SRC_0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 0
//CHECK-NEXT: %[[COPY_DST_0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_0]], align 4
//CHECK-LABEL: define{{.*}} i256* @return_array_B_
//CHECK-SAME: [[$F_ID_B:[0-9a-zA-Z_\.]+]](i256* %[[ARENA:[0-9a-zA-Z_\.]+]]){{.*}} {
//CHECK: %[[SRC_PTR:[0-9a-zA-Z_\.]+]] = call i256* @return_array_A_{{[0-9a-zA-Z_\.]+}}(i256* %{{.*}})
//CHECK-NEXT: %[[DST_PTR:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[ARENA]], i32 2
//CHECK-NEXT: %[[COPY_SRC_0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 0
//CHECK-NEXT: %[[COPY_DST_0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_0]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_0]], i256* %[[COPY_DST_0]], align 4
//CHECK-NEXT: %[[COPY_SRC_1:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 1
//CHECK-NEXT: %[[COPY_DST_1:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 1
//CHECK-NEXT: %[[COPY_VAL_1:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_1]], align 4
//CHECK-NEXT: %[[COPY_SRC_1:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 1
//CHECK-NEXT: %[[COPY_DST_1:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 1
//CHECK-NEXT: %[[COPY_VAL_1:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_1]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_1]], i256* %[[COPY_DST_1]], align 4
//CHECK-NEXT: %[[COPY_SRC_2:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 2
//CHECK-NEXT: %[[COPY_DST_2:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 2
//CHECK-NEXT: %[[COPY_VAL_2:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_2]], align 4
//CHECK-NEXT: %[[COPY_SRC_2:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 2
//CHECK-NEXT: %[[COPY_DST_2:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 2
//CHECK-NEXT: %[[COPY_VAL_2:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_2]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_2]], i256* %[[COPY_DST_2]], align 4
//CHECK-NEXT: %[[COPY_SRC_3:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 3
//CHECK-NEXT: %[[COPY_DST_3:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 3
//CHECK-NEXT: %[[COPY_VAL_3:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_3]], align 4
//CHECK-NEXT: %[[COPY_SRC_3:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 3
//CHECK-NEXT: %[[COPY_DST_3:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 3
//CHECK-NEXT: %[[COPY_VAL_3:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_3]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_3]], i256* %[[COPY_DST_3]], align 4
//CHECK-NEXT: %[[COPY_SRC_4:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 4
//CHECK-NEXT: %[[COPY_DST_4:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 4
//CHECK-NEXT: %[[COPY_VAL_4:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_4]], align 4
//CHECK-NEXT: %[[COPY_SRC_4:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 4
//CHECK-NEXT: %[[COPY_DST_4:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 4
//CHECK-NEXT: %[[COPY_VAL_4:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_4]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_4]], i256* %[[COPY_DST_4]], align 4
//CHECK-NEXT: br label %return2
//CHECK-EMPTY:
//CHECK-NEXT: return2:
//CHECK-NEXT: %[[T10:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[ARENA]], i32 2
//CHECK-NEXT: %[[T10:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[ARENA]], i32 2
//CHECK-NEXT: ret i256* %[[T10]]
//CHECK-NEXT: }

//CHECK-LABEL: define{{.*}} i256* @return_array_A_{{[0-9\.]+}}
//CHECK-SAME: (i256* %[[ARENA:[0-9a-zA-Z_.]+]]){{.*}} {
//CHECK-LABEL: define{{.*}} i256* @return_array_A_
//CHECK-SAME: [[$F_ID_A:[0-9a-zA-Z_\.]+]](i256* %[[ARENA:[0-9a-zA-Z_\.]+]]){{.*}} {
//CHECK: return{{[0-9]+}}:
//CHECK-NEXT: %[[T0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[ARENA]], i32 3
//CHECK-NEXT: %[[T0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[ARENA]], i32 3
//CHECK-NEXT: ret i256* %[[T0]]
//CHECK-NEXT: }

//CHECK-LABEL: define{{.*}} void @ArrayReturnTemplate_{{[0-9]+}}_run
//CHECK-SAME: ([0 x i256]* %[[ARENA:[0-9a-zA-Z_.]+]]){{.*}} {
//CHECK: %[[SRC_PTR:[0-9a-zA-Z_.]+]] = call i256* @return_array_B_{{[0-9]+}}(i256* %{{[0-9a-zA-Z_.]+}})
//CHECK-NEXT: %[[DST_PTR:[0-9a-zA-Z_.]+]] = getelementptr [6 x i256], [6 x i256]* %lvars, i32 0, i32 1
//CHECK-NEXT: %[[COPY_SRC_0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 0
//CHECK-NEXT: %[[COPY_DST_0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_0]], align 4
//CHECK-SAME: ([0 x i256]* %[[ARENA:[0-9a-zA-Z_\.]+]]){{.*}} {
//CHECK: %[[SRC_PTR:[0-9a-zA-Z_\.]+]] = call i256* @return_array_B_[[$F_ID_B]](i256* %{{[0-9a-zA-Z_\.]+}})
//CHECK-NEXT: %[[DST_PTR:[0-9a-zA-Z_\.]+]] = getelementptr [6 x i256], [6 x i256]* %lvars, i32 0, i32 1
//CHECK-NEXT: %[[COPY_SRC_0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 0
//CHECK-NEXT: %[[COPY_DST_0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_0]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_0]], i256* %[[COPY_DST_0]], align 4
//CHECK-NEXT: %[[COPY_SRC_1:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 1
//CHECK-NEXT: %[[COPY_DST_1:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 1
//CHECK-NEXT: %[[COPY_VAL_1:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_1]], align 4
//CHECK-NEXT: %[[COPY_SRC_1:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 1
//CHECK-NEXT: %[[COPY_DST_1:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 1
//CHECK-NEXT: %[[COPY_VAL_1:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_1]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_1]], i256* %[[COPY_DST_1]], align 4
//CHECK-NEXT: %[[COPY_SRC_2:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 2
//CHECK-NEXT: %[[COPY_DST_2:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 2
//CHECK-NEXT: %[[COPY_VAL_2:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_2]], align 4
//CHECK-NEXT: %[[COPY_SRC_2:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 2
//CHECK-NEXT: %[[COPY_DST_2:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 2
//CHECK-NEXT: %[[COPY_VAL_2:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_2]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_2]], i256* %[[COPY_DST_2]], align 4
//CHECK-NEXT: %[[COPY_SRC_3:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 3
//CHECK-NEXT: %[[COPY_DST_3:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 3
//CHECK-NEXT: %[[COPY_VAL_3:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_3]], align 4
//CHECK-NEXT: %[[COPY_SRC_3:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 3
//CHECK-NEXT: %[[COPY_DST_3:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 3
//CHECK-NEXT: %[[COPY_VAL_3:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_3]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_3]], i256* %[[COPY_DST_3]], align 4
//CHECK-NEXT: %[[COPY_SRC_4:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 4
//CHECK-NEXT: %[[COPY_DST_4:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 4
//CHECK-NEXT: %[[COPY_VAL_4:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_4]], align 4
//CHECK-NEXT: %[[COPY_SRC_4:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 4
//CHECK-NEXT: %[[COPY_DST_4:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 4
//CHECK-NEXT: %[[COPY_VAL_4:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_4]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_4]], i256* %[[COPY_DST_4]], align 4
//CHECK-NEXT: br label %prologue
60 changes: 30 additions & 30 deletions circom/tests/arrays/array9.circom
Original file line number Diff line number Diff line change
Expand Up @@ -14,51 +14,51 @@ template ArrayCopyTemplate() {

component main = ArrayCopyTemplate();

//CHECK-LABEL: define{{.*}} i256* @copy_{{[0-9]+}}
//CHECK-SAME: (i256* %[[ARENA:[0-9a-zA-Z_.]+]]){{.*}} {
//CHECK-LABEL: define{{.*}} i256* @copy_
//CHECK-SAME: [[$F_ID_C:[0-9a-zA-Z_\.]+]](i256* %[[ARENA:[0-9a-zA-Z_\.]+]]){{.*}} {
//CHECK: store1:
//CHECK-NEXT: %[[DST_PTR:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[ARENA]], i32 3
//CHECK-NEXT: %[[SRC_PTR:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[ARENA]], i32 0
//CHECK-NEXT: %[[COPY_SRC_0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 0
//CHECK-NEXT: %[[COPY_DST_0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_0]], align 4
//CHECK-NEXT: %[[DST_PTR:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[ARENA]], i32 3
//CHECK-NEXT: %[[SRC_PTR:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[ARENA]], i32 0
//CHECK-NEXT: %[[COPY_SRC_0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 0
//CHECK-NEXT: %[[COPY_DST_0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_0]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_0]], i256* %[[COPY_DST_0]], align 4
//CHECK-NEXT: %[[COPY_SRC_1:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 1
//CHECK-NEXT: %[[COPY_DST_1:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 1
//CHECK-NEXT: %[[COPY_VAL_1:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_1]], align 4
//CHECK-NEXT: %[[COPY_SRC_1:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 1
//CHECK-NEXT: %[[COPY_DST_1:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 1
//CHECK-NEXT: %[[COPY_VAL_1:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_1]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_1]], i256* %[[COPY_DST_1]], align 4
//CHECK-NEXT: %[[COPY_SRC_2:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 2
//CHECK-NEXT: %[[COPY_DST_2:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 2
//CHECK-NEXT: %[[COPY_VAL_2:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_2]], align 4
//CHECK-NEXT: %[[COPY_SRC_2:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR]], i32 2
//CHECK-NEXT: %[[COPY_DST_2:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR]], i32 2
//CHECK-NEXT: %[[COPY_VAL_2:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_2]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_2]], i256* %[[COPY_DST_2]], align 4
//CHECK-NEXT: br label %return2
//CHECK-EMPTY:
//CHECK-NEXT: return2:
//CHECK-NEXT: %[[T3:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[ARENA]], i32 3
//CHECK-NEXT: %[[T3:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[ARENA]], i32 3
//CHECK-NEXT: ret i256* %[[T3]]
//CHECK-NEXT: }

//CHECK-LABEL: define{{.*}} void @ArrayCopyTemplate_{{[0-9]+}}_run
//CHECK-SAME: ([0 x i256]* %[[ARENA:[0-9a-zA-Z_.]+]]){{.*}} {
//CHECK-SAME: ([0 x i256]* %[[ARENA:[0-9a-zA-Z_\.]+]]){{.*}} {
//CHECK: call4:
//CHECK-NEXT: %[[CALL_ARENA:[0-9a-zA-Z_.]+]] = alloca [6 x i256], align 8
//CHECK-NEXT: %[[DST_PTR_A:[0-9a-zA-Z_.]+]] = getelementptr [6 x i256], [6 x i256]* %[[CALL_ARENA]], i32 0, i32 0
//CHECK-NEXT: %[[SRC_PTR_A:[0-9a-zA-Z_.]+]] = getelementptr [6 x i256], [6 x i256]* %lvars, i32 0, i32 0
//CHECK-NEXT: %[[COPY_SRC_0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR_A]], i32 0
//CHECK-NEXT: %[[COPY_DST_0:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR_A]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_0]], align 4
//CHECK-NEXT: %[[CALL_ARENA:[0-9a-zA-Z_\.]+]] = alloca [6 x i256], align 8
//CHECK-NEXT: %[[DST_PTR_A:[0-9a-zA-Z_\.]+]] = getelementptr [6 x i256], [6 x i256]* %[[CALL_ARENA]], i32 0, i32 0
//CHECK-NEXT: %[[SRC_PTR_A:[0-9a-zA-Z_\.]+]] = getelementptr [6 x i256], [6 x i256]* %lvars, i32 0, i32 0
//CHECK-NEXT: %[[COPY_SRC_0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR_A]], i32 0
//CHECK-NEXT: %[[COPY_DST_0:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR_A]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_0]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_0]], i256* %[[COPY_DST_0]], align 4
//CHECK-NEXT: %[[COPY_SRC_1:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR_A]], i32 1
//CHECK-NEXT: %[[COPY_DST_1:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR_A]], i32 1
//CHECK-NEXT: %[[COPY_VAL_1:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_1]], align 4
//CHECK-NEXT: %[[COPY_SRC_1:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR_A]], i32 1
//CHECK-NEXT: %[[COPY_DST_1:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR_A]], i32 1
//CHECK-NEXT: %[[COPY_VAL_1:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_1]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_1]], i256* %[[COPY_DST_1]], align 4
//CHECK-NEXT: %[[COPY_SRC_2:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[SRC_PTR_A]], i32 2
//CHECK-NEXT: %[[COPY_DST_2:[0-9a-zA-Z_.]+]] = getelementptr i256, i256* %[[DST_PTR_A]], i32 2
//CHECK-NEXT: %[[COPY_VAL_2:[0-9a-zA-Z_.]+]] = load i256, i256* %[[COPY_SRC_2]], align 4
//CHECK-NEXT: %[[COPY_SRC_2:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[SRC_PTR_A]], i32 2
//CHECK-NEXT: %[[COPY_DST_2:[0-9a-zA-Z_\.]+]] = getelementptr i256, i256* %[[DST_PTR_A]], i32 2
//CHECK-NEXT: %[[COPY_VAL_2:[0-9a-zA-Z_\.]+]] = load i256, i256* %[[COPY_SRC_2]], align 4
//CHECK-NEXT: store i256 %[[COPY_VAL_2]], i256* %[[COPY_DST_2]], align 4
//CHECK-NEXT: %[[CALL_ARENA_REF:[0-9a-zA-Z_.]+]] = bitcast [6 x i256]* %[[CALL_ARENA]] to i256*
//CHECK-NEXT: %[[SRC_PTR_B:[0-9a-zA-Z_.]+]] = call i256* @copy_0(i256* %[[CALL_ARENA_REF]])
//CHECK-NEXT: %[[DST_PTR_B:[0-9a-zA-Z_.]+]] = getelementptr [6 x i256], [6 x i256]* %lvars, i32 0, i32 3
//CHECK-NEXT: %[[CALL_ARENA_REF:[0-9a-zA-Z_\.]+]] = bitcast [6 x i256]* %[[CALL_ARENA]] to i256*
//CHECK-NEXT: %[[SRC_PTR_B:[0-9a-zA-Z_\.]+]] = call i256* @copy_[[$F_ID_C]](i256* %[[CALL_ARENA_REF]])
//CHECK-NEXT: %[[DST_PTR_B:[0-9a-zA-Z_\.]+]] = getelementptr [6 x i256], [6 x i256]* %lvars, i32 0, i32 3
//CHECK-NEXT: %[[COPY_SRC_0]]1 = getelementptr i256, i256* %[[SRC_PTR_B]], i32 0
//CHECK-NEXT: %[[COPY_DST_0]]2 = getelementptr i256, i256* %[[DST_PTR_B]], i32 0
//CHECK-NEXT: %[[COPY_VAL_0]]3 = load i256, i256* %[[COPY_SRC_0]]1, align 4
Expand Down
Loading
Loading