Add patterns for matching immediates whose lower 16-bit is cleared. These
[oota-llvm.git] / test / CodeGen / Mips / mips64imm.ll
1 ; RUN: llc -march=mips64el -mcpu=mips64 < %s | FileCheck %s
2
3 define i32 @foo1() nounwind readnone {
4 entry:
5 ; CHECK: foo1
6 ; CHECK: lui ${{[0-9]+}}, 4660
7 ; CHECK-NOT: ori
8   ret i32 305397760
9 }
10
11 define i64 @foo3() nounwind readnone {
12 entry:
13 ; CHECK: foo3
14 ; CHECK: lui $[[R0:[0-9]+]], 4660
15 ; CHECK: ori ${{[0-9]+}}, $[[R0]], 22136
16   ret i64 305419896
17 }
18
19 define i64 @foo6() nounwind readnone {
20 entry:
21 ; CHECK: foo6
22 ; CHECK: ori ${{[0-9]+}}, $zero, 33332
23   ret i64 33332
24 }
25
26 define i64 @foo7() nounwind readnone {
27 entry:
28 ; CHECK: foo7
29 ; CHECK: daddiu ${{[0-9]+}}, $zero, -32204
30   ret i64 -32204
31 }
32
33 define i64 @foo9() nounwind readnone {
34 entry:
35 ; CHECK: foo9
36 ; CHECK: lui $[[R0:[0-9]+]], 4660
37 ; CHECK: ori $[[R1:[0-9]+]], $[[R0]], 22136
38 ; CHECK: dsll $[[R2:[0-9]+]], $[[R1]], 16
39 ; CHECK: ori $[[R3:[0-9]+]], $[[R2]], 36882
40 ; CHECK: dsll $[[R4:[0-9]+]], $[[R3]], 16
41 ; CHECK: ori ${{[0-9]+}}, $[[R4]], 13398
42   ret i64 1311768467284833366
43 }