Optimize load/store with an iadd_imm operand.
Fold the immediate into the load/store offset when possible.
This commit is contained in:
18
cranelift/filetests/postopt/fold_offset_into_address.clif
Normal file
18
cranelift/filetests/postopt/fold_offset_into_address.clif
Normal file
@@ -0,0 +1,18 @@
|
||||
test postopt
|
||||
target x86_64
|
||||
|
||||
; Fold the immediate of an iadd_imm into an address offset.
|
||||
|
||||
function u0:0(i64 vmctx) -> i64 {
|
||||
ebb0(v0: i64):
|
||||
v1 = iadd_imm.i64 v0, 16
|
||||
[RexOp1ldDisp8#808b] v2 = load.i64 notrap aligned v1
|
||||
[Op1ret#c3] return v2
|
||||
}
|
||||
|
||||
; sameln: function u0:0(i64 vmctx) -> i64 fast {
|
||||
; nextln: ebb0(v0: i64):
|
||||
; nextln: v1 = iadd_imm v0, 16
|
||||
; nextln: [RexOp1ldDisp8#808b] v2 = load.i64 notrap aligned v0+16
|
||||
; nextln: [Op1ret#c3] return v2
|
||||
; nextln: }
|
||||
Reference in New Issue
Block a user