50 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=m68k-linux | FileCheck %s3 4define i8 @mul255_8(i8 %A) {5; CHECK-LABEL: mul255_8:6; CHECK: .cfi_startproc7; CHECK-NEXT: ; %bb.0:8; CHECK-NEXT: move.b (7,%sp), %d09; CHECK-NEXT: neg.b %d010; CHECK-NEXT: rts11 %mul = mul i8 %A, 25512 ret i8 %mul13}14 15define i16 @mul65535_16(i16 %A) {16; CHECK-LABEL: mul65535_16:17; CHECK: .cfi_startproc18; CHECK-NEXT: ; %bb.0:19; CHECK-NEXT: move.w (6,%sp), %d020; CHECK-NEXT: neg.w %d021; CHECK-NEXT: rts22 %mul = mul i16 %A, 6553523 ret i16 %mul24}25 26define i32 @mul4294967295_32(i32 %A) {27; CHECK-LABEL: mul4294967295_32:28; CHECK: .cfi_startproc29; CHECK-NEXT: ; %bb.0:30; CHECK-NEXT: move.l (4,%sp), %d031; CHECK-NEXT: neg.l %d032; CHECK-NEXT: rts33 %mul = mul i32 %A, 429496729534 ret i32 %mul35}36 37; NOTE: If returning a 64-bit integer, d0 will be the higher 32-bit!38define i64 @mul18446744073709551615_64(i64 %A) {39; CHECK-LABEL: mul18446744073709551615_64:40; CHECK: .cfi_startproc41; CHECK-NEXT: ; %bb.0:42; CHECK-NEXT: move.l (4,%sp), %d043; CHECK-NEXT: move.l (8,%sp), %d144; CHECK-NEXT: neg.l %d145; CHECK-NEXT: negx.l %d046; CHECK-NEXT: rts47 %mul = mul i64 %A, 1844674407370955161548 ret i64 %mul49}50