1 ; RUN: llc -march=mips -mcpu=4ke < %s | FileCheck %s
4 define i64 @madd1(i32 %a, i32 %b, i32 %c) nounwind readnone {
6 %conv = sext i32 %a to i64
7 %conv2 = sext i32 %b to i64
8 %mul = mul nsw i64 %conv2, %conv
9 %conv4 = sext i32 %c to i64
10 %add = add nsw i64 %mul, %conv4
15 define i64 @madd2(i32 %a, i32 %b, i32 %c) nounwind readnone {
17 %conv = zext i32 %a to i64
18 %conv2 = zext i32 %b to i64
19 %mul = mul nsw i64 %conv2, %conv
20 %conv4 = zext i32 %c to i64
21 %add = add nsw i64 %mul, %conv4
26 define i64 @madd3(i32 %a, i32 %b, i64 %c) nounwind readnone {
28 %conv = sext i32 %a to i64
29 %conv2 = sext i32 %b to i64
30 %mul = mul nsw i64 %conv2, %conv
31 %add = add nsw i64 %mul, %c
36 define i64 @msub1(i32 %a, i32 %b, i32 %c) nounwind readnone {
38 %conv = sext i32 %c to i64
39 %conv2 = sext i32 %a to i64
40 %conv4 = sext i32 %b to i64
41 %mul = mul nsw i64 %conv4, %conv2
42 %sub = sub nsw i64 %conv, %mul
47 define i64 @msub2(i32 %a, i32 %b, i32 %c) nounwind readnone {
49 %conv = zext i32 %c to i64
50 %conv2 = zext i32 %a to i64
51 %conv4 = zext i32 %b to i64
52 %mul = mul nsw i64 %conv4, %conv2
53 %sub = sub nsw i64 %conv, %mul
58 define i64 @msub3(i32 %a, i32 %b, i64 %c) nounwind readnone {
60 %conv = sext i32 %a to i64
61 %conv3 = sext i32 %b to i64
62 %mul = mul nsw i64 %conv3, %conv
63 %sub = sub nsw i64 %c, %mul