60 lines
1.4 KiB
LLVM
60 lines
1.4 KiB
LLVM
; RUN: llc -march=mips < %s | FileCheck %s --check-prefix=BE
|
|
; RUN: llc -march=mipsel < %s | FileCheck %s --check-prefix=LE
|
|
; Check assembly printing of odd constants.
|
|
|
|
; BE-LABEL: bigCst:
|
|
; BE-NEXT: .8byte 28829195638097253
|
|
; BE-NEXT: .2byte 46
|
|
; BE-NEXT: .byte 0
|
|
; BE-NEXT: .space 5
|
|
; BE-NEXT: .size bigCst, 16
|
|
|
|
; LE-LABEL: bigCst:
|
|
; LE-NEXT: .8byte 12713950999227904
|
|
; LE-NEXT: .2byte 26220
|
|
; LE-NEXT: .byte 0
|
|
; LE-NEXT: .space 5
|
|
; LE-NEXT: .size bigCst, 16
|
|
|
|
; BE-LABEL: notSoBigCst:
|
|
; BE-NEXT: .8byte 72057594037927935
|
|
; BE-NEXT: .size notSoBigCst, 8
|
|
|
|
; LE-LABEL: notSoBigCst:
|
|
; LE-NEXT: .8byte 72057594037927935
|
|
; LE-NEXT: .size notSoBigCst, 8
|
|
|
|
; BE-LABEL: smallCst:
|
|
; BE-NEXT: .2byte 4386
|
|
; BE-NEXT: .byte 51
|
|
; BE-NEXT: .space 1
|
|
; BE-NEXT: .size smallCst, 4
|
|
|
|
; LE-LABEL: smallCst:
|
|
; LE-NEXT: .2byte 8755
|
|
; LE-NEXT: .byte 17
|
|
; LE-NEXT: .space 1
|
|
; LE-NEXT: .size smallCst, 4
|
|
|
|
@bigCst = internal constant i82 483673642326615442599424
|
|
|
|
define void @accessBig(i64* %storage) {
|
|
%addr = bitcast i64* %storage to i82*
|
|
%bigLoadedCst = load volatile i82, i82* @bigCst
|
|
%tmp = add i82 %bigLoadedCst, 1
|
|
store i82 %tmp, i82* %addr
|
|
ret void
|
|
}
|
|
|
|
@notSoBigCst = internal constant i57 72057594037927935
|
|
|
|
define void @accessNotSoBig(i64* %storage) {
|
|
%addr = bitcast i64* %storage to i57*
|
|
%bigLoadedCst = load volatile i57, i57* @notSoBigCst
|
|
%tmp = add i57 %bigLoadedCst, 1
|
|
store i57 %tmp, i57* %addr
|
|
ret void
|
|
}
|
|
|
|
@smallCst = internal constant i24 1122867
|