brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 7322d0f Raw
45 lines · plain
1; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s2; Check generated signed and unsigned multiply accumulate long.3 4define i64 @MACLongTest1(i32 %a, i32 %b, i64 %c) {5;CHECK-LABEL: MACLongTest1:6;CHECK: umlal7  %conv = zext i32 %a to i648  %conv1 = zext i32 %b to i649  %mul = mul i64 %conv1, %conv10  %add = add i64 %mul, %c11  ret i64 %add12}13 14define i64 @MACLongTest2(i32 %a, i32 %b, i64 %c)  {15;CHECK-LABEL: MACLongTest2:16;CHECK: smlal17  %conv = sext i32 %a to i6418  %conv1 = sext i32 %b to i6419  %mul = mul nsw i64 %conv1, %conv20  %add = add nsw i64 %mul, %c21  ret i64 %add22}23 24define i64 @MACLongTest3(i32 %a, i32 %b, i32 %c) {25;CHECK-LABEL: MACLongTest3:26;CHECK: umlal27  %conv = zext i32 %b to i6428  %conv1 = zext i32 %a to i6429  %mul = mul i64 %conv, %conv130  %conv2 = zext i32 %c to i6431  %add = add i64 %mul, %conv232  ret i64 %add33}34 35define i64 @MACLongTest4(i32 %a, i32 %b, i32 %c) {36;CHECK-LABEL: MACLongTest4:37;CHECK: smlal38  %conv = sext i32 %b to i6439  %conv1 = sext i32 %a to i6440  %mul = mul nsw i64 %conv, %conv141  %conv2 = sext i32 %c to i6442  %add = add nsw i64 %mul, %conv243  ret i64 %add44}45