; Make sure this testcase does not use mulq
; RUN: llc < %s -march=alpha | not grep -i mul

define i64 @foo1(i64 %x) {
entry:
        %tmp.1 = mul i64 %x, 9          ; <i64> [#uses=1]
        ret i64 %tmp.1
}

define i64 @foo3(i64 %x) {
entry:
        %tmp.1 = mul i64 %x, 259                ; <i64> [#uses=1]
        ret i64 %tmp.1
}

define i64 @foo4l(i64 %x) {
entry:
        %tmp.1 = mul i64 %x, 260                ; <i64> [#uses=1]
        ret i64 %tmp.1
}

define i64 @foo8l(i64 %x) {
entry:
        %tmp.1 = mul i64 %x, 768                ; <i64> [#uses=1]
        ret i64 %tmp.1
}

define i64 @bar(i64 %x) {
entry:
        %tmp.1 = mul i64 %x, 5          ; <i64> [#uses=1]
        ret i64 %tmp.1
}

