Skip to content

Commit

Permalink
More flexible and consistent matching patterns in tests (#134)
Browse files Browse the repository at this point in the history
* more flexibility when matching function names
* flexible naming for function local variables
* escape the period in match patterns
* use regex throughout more tests for things that could change in the future
  • Loading branch information
tim-hoffman authored Jul 12, 2024
1 parent d73813f commit a838a8d
Show file tree
Hide file tree
Showing 116 changed files with 4,724 additions and 4,692 deletions.
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

0 comments on commit a838a8d

Please sign in to comment.