blob: c44fdb3ad507e71b4914355367c4518c78f4f00c [file] [log] [blame]
Edward O'Callaghanf4a93dd2009-11-22 15:18:27 +00001; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s
2
David Goodwin7f98cac2009-06-26 22:37:07 +00003
Andrew Tricke02a1502011-04-29 14:02:41 +00004; CHECK: f1:
5; CHECK: ror.w r0, r0, #22
David Goodwin7f98cac2009-06-26 22:37:07 +00006define i32 @f1(i32 %a) {
7 %l8 = shl i32 %a, 10
8 %r8 = lshr i32 %a, 22
9 %tmp = or i32 %l8, %r8
10 ret i32 %tmp
11}
Andrew Tricke02a1502011-04-29 14:02:41 +000012
13; CHECK: f2:
14; CHECK: ror
15define i32 @f2(i32 %v, i32 %nbits) {
16entry:
17 %shr = lshr i32 %v, %nbits
18 %sub = sub i32 32, %nbits
19 %shl = shl i32 %v, %sub
20 %or = or i32 %shl, %shr
21 ret i32 %or
22}