; RUN: llc < %s -march=msp430 -no-integrated-as
; ModuleID = 'mult-alt-generic.c'
target datalayout = "e-p:16:16:16-i8:8:8-i16:16:16-i32:16:32-n8:16"
target triple = "msp430"

@mout0 = common global i16 0, align 2
@min1 = common global i16 0, align 2
@marray = common global [2 x i16] zeroinitializer, align 2

define void @single_m() nounwind {
entry:
  call void asm "foo $1,$0", "=*m,*m"(i16* @mout0, i16* @min1) nounwind
  ret void
}

define void @single_o() nounwind {
entry:
  %out0 = alloca i16, align 2
  %index = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %index, align 2
  ret void
}

define void @single_V() nounwind {
entry:
  ret void
}

define void @single_lt() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r,<r"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  %tmp1 = load i16, i16* %in1, align 2
  %1 = call i16 asm "foo $1,$0", "=r,r<"(i16 %tmp1) nounwind
  store i16 %1, i16* %out0, align 2
  ret void
}

define void @single_gt() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r,>r"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  %tmp1 = load i16, i16* %in1, align 2
  %1 = call i16 asm "foo $1,$0", "=r,r>"(i16 %tmp1) nounwind
  store i16 %1, i16* %out0, align 2
  ret void
}

define void @single_r() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r,r"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  ret void
}

define void @single_i() nounwind {
entry:
  %out0 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  %0 = call i16 asm "foo $1,$0", "=r,i"(i16 1) nounwind
  store i16 %0, i16* %out0, align 2
  ret void
}

define void @single_n() nounwind {
entry:
  %out0 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  %0 = call i16 asm "foo $1,$0", "=r,n"(i16 1) nounwind
  store i16 %0, i16* %out0, align 2
  ret void
}

define void @single_E() nounwind {
entry:
  %out0 = alloca double, align 8
  store double 0.000000e+000, double* %out0, align 8
; No lowering support.
;  %0 = call double asm "foo $1,$0", "=r,E"(double 1.000000e+001) nounwind
;  store double %0, double* %out0, align 8
  ret void
}

define void @single_F() nounwind {
entry:
  %out0 = alloca double, align 8
  store double 0.000000e+000, double* %out0, align 8
; No lowering support.
;  %0 = call double asm "foo $1,$0", "=r,F"(double 1.000000e+000) nounwind
;  store double %0, double* %out0, align 8
  ret void
}

define void @single_s() nounwind {
entry:
  %out0 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  ret void
}

define void @single_g() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r,imr"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  %tmp1 = load i16, i16* @min1, align 2
  %1 = call i16 asm "foo $1,$0", "=r,imr"(i16 %tmp1) nounwind
  store i16 %1, i16* %out0, align 2
  %2 = call i16 asm "foo $1,$0", "=r,imr"(i16 1) nounwind
  store i16 %2, i16* %out0, align 2
  ret void
}

define void @single_X() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r,X"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  %tmp1 = load i16, i16* @min1, align 2
  %1 = call i16 asm "foo $1,$0", "=r,X"(i16 %tmp1) nounwind
  store i16 %1, i16* %out0, align 2
  %2 = call i16 asm "foo $1,$0", "=r,X"(i16 1) nounwind
  store i16 %2, i16* %out0, align 2
  %3 = call i16 asm "foo $1,$0", "=r,X"(i16* getelementptr inbounds ([2 x i16], [2 x i16]* @marray, i32 0, i32 0)) nounwind
  store i16 %3, i16* %out0, align 2
; No lowering support.
;  %4 = call i16 asm "foo $1,$0", "=r,X"(double 1.000000e+001) nounwind
;  store i16 %4, i16* %out0, align 2
;  %5 = call i16 asm "foo $1,$0", "=r,X"(double 1.000000e+000) nounwind
;  store i16 %5, i16* %out0, align 2
  ret void
}

define void @single_p() nounwind {
entry:
  %out0 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  %0 = call i16 asm "foo $1,$0", "=r,r"(i16* getelementptr inbounds ([2 x i16], [2 x i16]* @marray, i32 0, i32 0)) nounwind
  store i16 %0, i16* %out0, align 2
  ret void
}

define void @multi_m() nounwind {
entry:
  %tmp = load i16, i16* @min1, align 2
  call void asm "foo $1,$0", "=*m|r,m|r"(i16* @mout0, i16 %tmp) nounwind
  ret void
}

define void @multi_o() nounwind {
entry:
  %out0 = alloca i16, align 2
  %index = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %index, align 2
  ret void
}

define void @multi_V() nounwind {
entry:
  ret void
}

define void @multi_lt() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r|r,r|<r"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  %tmp1 = load i16, i16* %in1, align 2
  %1 = call i16 asm "foo $1,$0", "=r|r,r|r<"(i16 %tmp1) nounwind
  store i16 %1, i16* %out0, align 2
  ret void
}

define void @multi_gt() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r|r,r|>r"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  %tmp1 = load i16, i16* %in1, align 2
  %1 = call i16 asm "foo $1,$0", "=r|r,r|r>"(i16 %tmp1) nounwind
  store i16 %1, i16* %out0, align 2
  ret void
}

define void @multi_r() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r|r,r|m"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  ret void
}

define void @multi_i() nounwind {
entry:
  %out0 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  %0 = call i16 asm "foo $1,$0", "=r|r,r|i"(i16 1) nounwind
  store i16 %0, i16* %out0, align 2
  ret void
}

define void @multi_n() nounwind {
entry:
  %out0 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  %0 = call i16 asm "foo $1,$0", "=r|r,r|n"(i16 1) nounwind
  store i16 %0, i16* %out0, align 2
  ret void
}

define void @multi_E() nounwind {
entry:
  %out0 = alloca double, align 8
  store double 0.000000e+000, double* %out0, align 8
; No lowering support.
;  %0 = call double asm "foo $1,$0", "=r|r,r|E"(double 1.000000e+001) nounwind
;  store double %0, double* %out0, align 8
  ret void
}

define void @multi_F() nounwind {
entry:
  %out0 = alloca double, align 8
  store double 0.000000e+000, double* %out0, align 8
; No lowering support.
;  %0 = call double asm "foo $1,$0", "=r|r,r|F"(double 1.000000e+000) nounwind
;  store double %0, double* %out0, align 8
  ret void
}

define void @multi_s() nounwind {
entry:
  %out0 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  ret void
}

define void @multi_g() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r|r,r|imr"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  %tmp1 = load i16, i16* @min1, align 2
  %1 = call i16 asm "foo $1,$0", "=r|r,r|imr"(i16 %tmp1) nounwind
  store i16 %1, i16* %out0, align 2
  %2 = call i16 asm "foo $1,$0", "=r|r,r|imr"(i16 1) nounwind
  store i16 %2, i16* %out0, align 2
  ret void
}

define void @multi_X() nounwind {
entry:
  %out0 = alloca i16, align 2
  %in1 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  store i16 1, i16* %in1, align 2
  %tmp = load i16, i16* %in1, align 2
  %0 = call i16 asm "foo $1,$0", "=r|r,r|X"(i16 %tmp) nounwind
  store i16 %0, i16* %out0, align 2
  %tmp1 = load i16, i16* @min1, align 2
  %1 = call i16 asm "foo $1,$0", "=r|r,r|X"(i16 %tmp1) nounwind
  store i16 %1, i16* %out0, align 2
  %2 = call i16 asm "foo $1,$0", "=r|r,r|X"(i16 1) nounwind
  store i16 %2, i16* %out0, align 2
  %3 = call i16 asm "foo $1,$0", "=r|r,r|X"(i16* getelementptr inbounds ([2 x i16], [2 x i16]* @marray, i32 0, i32 0)) nounwind
  store i16 %3, i16* %out0, align 2
; No lowering support.
;  %4 = call i16 asm "foo $1,$0", "=r|r,r|X"(double 1.000000e+001) nounwind
;  store i16 %4, i16* %out0, align 2
;  %5 = call i16 asm "foo $1,$0", "=r|r,r|X"(double 1.000000e+000) nounwind
;  store i16 %5, i16* %out0, align 2
  ret void
}

define void @multi_p() nounwind {
entry:
  %out0 = alloca i16, align 2
  store i16 0, i16* %out0, align 2
  %0 = call i16 asm "foo $1,$0", "=r|r,r|r"(i16* getelementptr inbounds ([2 x i16], [2 x i16]* @marray, i32 0, i32 0)) nounwind
  store i16 %0, i16* %out0, align 2
  ret void
}
