1; RUN: llc -march=mips < %s | FileCheck %s --check-prefix=BE
2; RUN: llc -march=mipsel < %s | FileCheck %s --check-prefix=LE
3; Check assembly printing of odd constants.
4
5; BE-LABEL: bigCst:
6; BE-NEXT: .8byte 28829195638097253
7; BE-NEXT: .2byte 46
8; BE-NEXT: .byte 0
9; BE-NEXT: .space 5
10; BE-NEXT: .size bigCst, 16
11
12; LE-LABEL: bigCst:
13; LE-NEXT: .8byte 12713950999227904
14; LE-NEXT: .2byte 26220
15; LE-NEXT: .byte 0
16; LE-NEXT: .space 5
17; LE-NEXT: .size bigCst, 16
18
19; BE-LABEL: notSoBigCst:
20; BE-NEXT:  .8byte  72057594037927935
21; BE-NEXT:  .size   notSoBigCst, 8
22
23; LE-LABEL: notSoBigCst:
24; LE-NEXT:  .8byte  72057594037927935
25; LE-NEXT:  .size   notSoBigCst, 8
26
27; BE-LABEL: smallCst:
28; BE-NEXT: .2byte 4386
29; BE-NEXT: .byte 51
30; BE-NEXT: .space 1
31; BE-NEXT: .size smallCst, 4
32
33; LE-LABEL: smallCst:
34; LE-NEXT: .2byte 8755
35; LE-NEXT: .byte 17
36; LE-NEXT: .space 1
37; LE-NEXT: .size smallCst, 4
38
39@bigCst = internal constant i82 483673642326615442599424
40
41define void @accessBig(i64* %storage) {
42  %addr = bitcast i64* %storage to i82*
43  %bigLoadedCst = load volatile i82, i82* @bigCst
44  %tmp = add i82 %bigLoadedCst, 1
45  store i82 %tmp, i82* %addr
46  ret void
47}
48
49@notSoBigCst = internal constant i57 72057594037927935
50
51define void @accessNotSoBig(i64* %storage) {
52  %addr = bitcast i64* %storage to i57*
53  %bigLoadedCst = load volatile i57, i57* @notSoBigCst
54  %tmp = add i57 %bigLoadedCst, 1
55  store i57 %tmp, i57* %addr
56  ret void
57}
58
59@smallCst = internal constant i24 1122867
60