blob: 4815f4b5f751bd2d59f7ebb401e8ab2792189a5a [file] [log] [blame]
Saleem Abdulrasool905b6d192014-04-03 23:47:24 +00001; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s
David Goodwin3aaa7512009-06-26 22:37:07 +00002
3define i32 @f1(i32 %a, i32 %b, i32 %c) {
Stephen Lind24ab202013-07-14 06:24:09 +00004; CHECK-LABEL: f1:
Jim Grosbachc01104d2012-02-24 00:33:36 +00005; CHECK: muls r0, r1, r0
David Goodwin3aaa7512009-06-26 22:37:07 +00006 %tmp = mul i32 %a, %b
7 ret i32 %tmp
8}
Bob Wilson43dff0f2011-02-05 04:15:50 +00009
10%struct.CMPoint = type { %struct.Point, float, float, [5 x float] }
11%struct.Point = type { float, float }
12
13define %struct.CMPoint* @t1(i32 %i, i32 %j, i32 %n, %struct.CMPoint* %thePoints) nounwind readnone ssp {
14entry:
Stephen Lind24ab202013-07-14 06:24:09 +000015; CHECK-LABEL: t1:
Bob Wilson43dff0f2011-02-05 04:15:50 +000016; CHECK: mla r0, r2, r0, r1
17; CHECK: add.w r0, r0, r0, lsl #3
Dmitri Gribenko1c704352012-12-06 21:24:47 +000018; CHECK: add.w r0, r3, r0, lsl #2
Bob Wilson43dff0f2011-02-05 04:15:50 +000019 %mul = mul i32 %n, %i
20 %add = add i32 %mul, %j
21 %0 = ptrtoint %struct.CMPoint* %thePoints to i32
22 %mul5 = mul i32 %add, 36
23 %add6 = add i32 %mul5, %0
24 %1 = inttoptr i32 %add6 to %struct.CMPoint*
25 ret %struct.CMPoint* %1
26}