mul-with-overflow.ll   [plain text]


; RUN: llc < %s -march=ppc32

declare {i32, i1} @llvm.umul.with.overflow.i32(i32 %a, i32 %b)
define zeroext i1 @a(i32 %x)  nounwind {
  %res = call {i32, i1} @llvm.umul.with.overflow.i32(i32 %x, i32 3)
  %obil = extractvalue {i32, i1} %res, 1
  ret i1 %obil
}

declare {i32, i1} @llvm.smul.with.overflow.i32(i32 %a, i32 %b)
define zeroext i1 @b(i32 %x)  nounwind {
  %res = call {i32, i1} @llvm.smul.with.overflow.i32(i32 %x, i32 3)
  %obil = extractvalue {i32, i1} %res, 1
  ret i1 %obil
}