Skip to content

Commit 327c45d

Browse files
committed
[AArch64] add test case for pattern ((X >> C) - Y) + Z; NFC
1 parent 2ea3933 commit 327c45d

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

llvm/test/CodeGen/AArch64/addsub.ll

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,3 +693,41 @@ if.then: ; preds = %lor.lhs.false, %ent
693693
if.end: ; preds = %if.then, %lor.lhs.false
694694
ret i32 undef
695695
}
696+
697+
define i32 @commute_subop0(i32 %x, i32 %y, i32 %z) {
698+
; CHECK-LABEL: commute_subop0:
699+
; CHECK: // %bb.0:
700+
; CHECK-NEXT: lsl w8, w0, #3
701+
; CHECK-NEXT: sub w8, w8, w1
702+
; CHECK-NEXT: add w0, w8, w2
703+
; CHECK-NEXT: ret
704+
%shl = shl i32 %x, 3
705+
%sub = sub i32 %shl, %y
706+
%add = add i32 %sub, %z
707+
ret i32 %add
708+
}
709+
710+
define i32 @commute_subop0_cadd(i32 %x, i32 %y, i32 %z) {
711+
; CHECK-LABEL: commute_subop0_cadd:
712+
; CHECK: // %bb.0:
713+
; CHECK-NEXT: lsl w8, w0, #3
714+
; CHECK-NEXT: sub w8, w8, w1
715+
; CHECK-NEXT: add w0, w2, w8
716+
; CHECK-NEXT: ret
717+
%shl = shl i32 %x, 3
718+
%sub = sub i32 %shl, %y
719+
%add = add i32 %z, %sub
720+
ret i32 %add
721+
}
722+
723+
define i32 @commute_subop0_mul(i32 %x, i32 %y) {
724+
; CHECK-LABEL: commute_subop0_mul:
725+
; CHECK: // %bb.0:
726+
; CHECK-NEXT: lsl w8, w0, #3
727+
; CHECK-NEXT: sub w8, w8, w0
728+
; CHECK-NEXT: add w0, w8, w1
729+
; CHECK-NEXT: ret
730+
%mul = mul i32 %x, 7
731+
%add = add i32 %mul, %y
732+
ret i32 %add
733+
}

0 commit comments

Comments
 (0)