Skip to content

Commit 5ecef9a

Browse files
vladimirradosavljevicakiramenai
authored andcommitted
[EVM] Add pre-commit tests for Set that gas intrinsic doesn't access storage memory
Signed-off-by: Vladimir Radosavljevic <[email protected]>
1 parent 3d35419 commit 5ecef9a

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

llvm/test/CodeGen/EVM/aa-memory-opt.ll

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,51 @@ define i256 @test_different_locsizes() {
5353
ret i256 %ret
5454
}
5555

56-
define i256 @test_gas() {
57-
; CHECK-LABEL: define i256 @test_gas
56+
define i256 @test_gas_as1() {
57+
; CHECK-LABEL: define i256 @test_gas_as1
5858
; CHECK-SAME: () local_unnamed_addr #[[ATTR2:[0-9]+]] {
59+
; CHECK-NEXT: store i256 2, ptr addrspace(1) inttoptr (i256 2 to ptr addrspace(1)), align 64
60+
; CHECK-NEXT: [[GAS:%.*]] = tail call i256 @llvm.evm.gas()
61+
; CHECK-NEXT: [[LOAD:%.*]] = load i256, ptr addrspace(1) inttoptr (i256 2 to ptr addrspace(1)), align 64
62+
; CHECK-NEXT: [[RET:%.*]] = add i256 [[LOAD]], [[GAS]]
63+
; CHECK-NEXT: ret i256 [[RET]]
64+
;
65+
store i256 2, ptr addrspace(1) inttoptr (i256 2 to ptr addrspace(1)), align 64
66+
%gas = call i256 @llvm.evm.gas()
67+
%load = load i256, ptr addrspace(1) inttoptr (i256 2 to ptr addrspace(1)), align 64
68+
%ret = add i256 %load, %gas
69+
ret i256 %ret
70+
}
71+
72+
define i256 @test_gas_as5() {
73+
; CHECK-LABEL: define i256 @test_gas_as5
74+
; CHECK-SAME: () local_unnamed_addr #[[ATTR2]] {
5975
; CHECK-NEXT: store i256 2, ptr addrspace(5) inttoptr (i256 2 to ptr addrspace(5)), align 64
6076
; CHECK-NEXT: [[GAS:%.*]] = tail call i256 @llvm.evm.gas()
61-
; CHECK-NEXT: store i256 [[GAS]], ptr addrspace(1) inttoptr (i256 1 to ptr addrspace(1)), align 64
62-
; CHECK-NEXT: [[RET:%.*]] = load i256, ptr addrspace(5) inttoptr (i256 2 to ptr addrspace(5)), align 64
77+
; CHECK-NEXT: [[LOAD:%.*]] = load i256, ptr addrspace(5) inttoptr (i256 2 to ptr addrspace(5)), align 64
78+
; CHECK-NEXT: [[RET:%.*]] = add i256 [[LOAD]], [[GAS]]
6379
; CHECK-NEXT: ret i256 [[RET]]
6480
;
6581
store i256 2, ptr addrspace(5) inttoptr (i256 2 to ptr addrspace(5)), align 64
6682
%gas = call i256 @llvm.evm.gas()
67-
store i256 %gas, ptr addrspace(1) inttoptr (i256 1 to ptr addrspace(1)), align 64
68-
%ret = load i256, ptr addrspace(5) inttoptr (i256 2 to ptr addrspace(5)), align 64
83+
%load = load i256, ptr addrspace(5) inttoptr (i256 2 to ptr addrspace(5)), align 64
84+
%ret = add i256 %load, %gas
85+
ret i256 %ret
86+
}
87+
88+
define i256 @test_gas_as6() {
89+
; CHECK-LABEL: define i256 @test_gas_as6
90+
; CHECK-SAME: () local_unnamed_addr #[[ATTR2]] {
91+
; CHECK-NEXT: store i256 2, ptr addrspace(6) inttoptr (i256 2 to ptr addrspace(6)), align 64
92+
; CHECK-NEXT: [[GAS:%.*]] = tail call i256 @llvm.evm.gas()
93+
; CHECK-NEXT: [[LOAD:%.*]] = load i256, ptr addrspace(6) inttoptr (i256 2 to ptr addrspace(6)), align 64
94+
; CHECK-NEXT: [[RET:%.*]] = add i256 [[LOAD]], [[GAS]]
95+
; CHECK-NEXT: ret i256 [[RET]]
96+
;
97+
store i256 2, ptr addrspace(6) inttoptr (i256 2 to ptr addrspace(6)), align 64
98+
%gas = call i256 @llvm.evm.gas()
99+
%load = load i256, ptr addrspace(6) inttoptr (i256 2 to ptr addrspace(6)), align 64
100+
%ret = add i256 %load, %gas
69101
ret i256 %ret
70102
}
71103

0 commit comments

Comments
 (0)