blob: 1e6616a91cc5243cfc7d043aa7ff78f2a2e736db [file] [log] [blame]
Jim Grosbach0ad7efba2009-11-17 00:20:26 +00001; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s
Evan Cheng53cdf022009-07-03 00:06:39 +00002
3define void @test1(i32* %X, i32* %A, i32** %dest) {
Jim Grosbach0ad7efba2009-11-17 00:20:26 +00004; CHECK: test1
Johnny Chen8f3004c2010-03-17 17:52:21 +00005; CHECK: str r1, [r0, #16]!
Evan Cheng53cdf022009-07-03 00:06:39 +00006 %B = load i32* %A ; <i32> [#uses=1]
7 %Y = getelementptr i32* %X, i32 4 ; <i32*> [#uses=2]
8 store i32 %B, i32* %Y
9 store i32* %Y, i32** %dest
10 ret void
11}
12
13define i16* @test2(i16* %X, i32* %A) {
Jim Grosbach0ad7efba2009-11-17 00:20:26 +000014; CHECK: test2
Johnny Chen8f3004c2010-03-17 17:52:21 +000015; CHECK: strh r1, [r0, #8]!
Evan Cheng53cdf022009-07-03 00:06:39 +000016 %B = load i32* %A ; <i32> [#uses=1]
17 %Y = getelementptr i16* %X, i32 4 ; <i16*> [#uses=2]
18 %tmp = trunc i32 %B to i16 ; <i16> [#uses=1]
19 store i16 %tmp, i16* %Y
20 ret i16* %Y
21}