lowerConstant() currently accepts a number of constant expressions which have corresponding MC expressions, but which cannot be evaluated as a relocatable expression (unless the operands are constant, in which case we'll just fold the expression to a constant). The motivation here is to clarify which constant expressions are really needed for https://discourse.llvm.org/t/rfc-remove-most-constant-expressions/63179, and in particular clarify that we do not need to support any division expressions, which are particularly problematic. Differential Revision: https://reviews.llvm.org/D127972
15 lines
339 B
LLVM
15 lines
339 B
LLVM
; RUN: llc < %s -mtriple=i386-linux | FileCheck %s
|
|
%union.x = type { i64 }
|
|
|
|
; CHECK: .globl r
|
|
; CHECK: r:
|
|
; CHECK: .quad r&4294967295
|
|
|
|
@r = global %union.x { i64 ptrtoint (ptr @r to i64) }, align 4
|
|
|
|
; CHECK: .globl x
|
|
; CHECK: x:
|
|
; CHECK: .quad 3
|
|
|
|
@x = global i64 mul (i64 3, i64 ptrtoint (ptr getelementptr (i2, ptr null, i64 1) to i64))
|