Xamarin Public Jenkins (auto-signing) 64ac736ec5 Imported Upstream version 6.0.0.172
Former-commit-id: f3cc9b82f3e5bd8f0fd3ebc098f789556b44e9cd
2019-04-12 14:10:50 +00:00

24 lines
500 B
LLVM

; RUN: opt < %s -instcombine -S | FileCheck %s
define i32 @foo(i32 %x, i32 %y) {
; CHECK-LABEL: @foo(
%add = add nsw i32 %y, %x
%mul = mul nsw i32 %add, %y
%square = mul nsw i32 %y, %y
%res = sub i32 %mul, %square
ret i32 %res
; CHECK-NEXT: mul i32 %x, %y
; CHECK-NEXT: ret i32
}
define i1 @bar(i64 %x, i64 %y) {
; CHECK-LABEL: @bar(
%a = and i64 %y, %x
; CHECK: and
; CHECK-NOT: and
%not = xor i64 %a, -1
%b = and i64 %y, %not
%r = icmp eq i64 %b, 0
ret i1 %r
; CHECK: ret i1
}