; Test high-part i32->i64 multiplications.
;
; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s

; We don't provide *MUL_LOHI or MULH* for the patterns in this file,
; but they should at least still work.

; Check zero-extended multiplication in which only the high part is used.
define i32 @f1(i32 %a, i32 %b) {
; CHECK: f1:
; CHECK: msgr
; CHECK: br %r14
  %ax = zext i32 %a to i64
  %bx = zext i32 %b to i64
  %mulx = mul i64 %ax, %bx
  %highx = lshr i64 %mulx, 32
  %high = trunc i64 %highx to i32
  ret i32 %high
}

; Check sign-extended multiplication in which only the high part is used.
define i32 @f2(i32 %a, i32 %b) {
; CHECK: f2:
; CHECK: msgfr
; CHECK: br %r14
  %ax = sext i32 %a to i64
  %bx = sext i32 %b to i64
  %mulx = mul i64 %ax, %bx
  %highx = lshr i64 %mulx, 32
  %high = trunc i64 %highx to i32
  ret i32 %high
}

; Check zero-extended multiplication in which the result is split into
; high and low halves.
define i32 @f3(i32 %a, i32 %b) {
; CHECK: f3:
; CHECK: msgr
; CHECK: br %r14
  %ax = zext i32 %a to i64
  %bx = zext i32 %b to i64
  %mulx = mul i64 %ax, %bx
  %highx = lshr i64 %mulx, 32
  %high = trunc i64 %highx to i32
  %low = trunc i64 %mulx to i32
  %or = or i32 %high, %low
  ret i32 %or
}

; Check sign-extended multiplication in which the result is split into
; high and low halves.
define i32 @f4(i32 %a, i32 %b) {
; CHECK: f4:
; CHECK: msgfr
; CHECK: br %r14
  %ax = sext i32 %a to i64
  %bx = sext i32 %b to i64
  %mulx = mul i64 %ax, %bx
  %highx = lshr i64 %mulx, 32
  %high = trunc i64 %highx to i32
  %low = trunc i64 %mulx to i32
  %or = or i32 %high, %low
  ret i32 %or
}
