aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/ARM/shifter_operand.ll
blob: 50c19ba1eaa21cebbb6f2430f6fb0b063ca0ddf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep 'add r0, r0, r1, lsl r2' &&
; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep 'bic r0, r0, r1, asr r2'

int %test1(int %X, int %Y, ubyte %sh) {
  %A = shl int %Y, ubyte %sh
  %B = add int %X, %A
  ret int %B
}

int %test2(int %X, int %Y, ubyte %sh) {
  %A = shr int %Y, ubyte %sh
  %B = xor int %A, -1
  %C = and int %X, %B
  ret int %C
}