Home | History | Annotate | Download | only in Mips
      1 ; RUN: llc -march=mips < %s | FileCheck %s
      2 
      3 ; CHECK: madd 
      4 define i64 @madd1(i32 %a, i32 %b, i32 %c) nounwind readnone {
      5 entry:
      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
     11   ret i64 %add
     12 }
     13 
     14 ; CHECK: maddu
     15 define i64 @madd2(i32 %a, i32 %b, i32 %c) nounwind readnone {
     16 entry:
     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
     22   ret i64 %add
     23 }
     24 
     25 ; CHECK: madd
     26 define i64 @madd3(i32 %a, i32 %b, i64 %c) nounwind readnone {
     27 entry:
     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
     32   ret i64 %add
     33 }
     34 
     35 ; CHECK: msub
     36 define i64 @msub1(i32 %a, i32 %b, i32 %c) nounwind readnone {
     37 entry:
     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
     43   ret i64 %sub
     44 }
     45 
     46 ; CHECK: msubu 
     47 define i64 @msub2(i32 %a, i32 %b, i32 %c) nounwind readnone {
     48 entry:
     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
     54   ret i64 %sub
     55 }
     56 
     57 ; CHECK: msub 
     58 define i64 @msub3(i32 %a, i32 %b, i64 %c) nounwind readnone {
     59 entry:
     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
     64   ret i64 %sub
     65 }
     66