| ; 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 } |