1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
//===---------------------------------------------------------------------===//
// Random ideas for the ARM backend.
//===---------------------------------------------------------------------===//
Consider implementing a select with two conditional moves:
cmp x, y
moveq dst, a
movne dst, b
----------------------------------------------------------
%tmp1 = shl int %b, ubyte %c
%tmp4 = add int %a, %tmp1
compiles to
add r0, r0, r1, lsl r2
but
%tmp1 = shl int %b, ubyte %c
%tmp4 = add int %tmp1, %a
compiles to
mov r1, r1, lsl r2
add r0, r1, r0
----------------------------------------------------------
|