linux-packaging-mono/external/llvm/test/CodeGen/X86/constant-hoisting-optnone.ll
Xamarin Public Jenkins (auto-signing) e19d552987 Imported Upstream version 5.18.0.161
Former-commit-id: 4db48158d3a35497b8f118ab21b5f08ac3d86d98
2018-10-19 08:34:24 +00:00

22 lines
790 B
LLVM

; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=generic | FileCheck %s
;
; Verify that pass 'Constant Hoisting' is not run on optnone functions.
; Without optnone, Pass 'Constant Hoisting' would firstly hoist
; constant 0xBEEBEEBEC, and then rebase the other constant
; (i.e. constant 0xBEEBEEBF4) with respect to the previous one.
; With optnone, we check that constants are not coalesced.
define i64 @constant_hoisting_optnone() #0 {
; CHECK-LABEL: @constant_hoisting_optnone
; CHECK-DAG: movabsq {{.*#+}} imm = 0xBEEBEEBF4
; CHECK-DAG: movabsq {{.*#+}} imm = 0xBEEBEEBEC
; CHECK: ret
entry:
%0 = load i64, i64* inttoptr (i64 51250129900 to i64*)
%1 = load i64, i64* inttoptr (i64 51250129908 to i64*)
%2 = add i64 %0, %1
ret i64 %2
}
attributes #0 = { optnone noinline }