32 lines
1.7 KiB
LLVM
32 lines
1.7 KiB
LLVM
; RUN: opt -consthoist -S < %s | FileCheck %s
|
|
target triple = "thumbv6m-none-eabi"
|
|
|
|
%T = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32,
|
|
i32, i32, i32, i32, i32, i32 }
|
|
|
|
; The second operand of insertvalue is able to be hoisted.
|
|
define void @test1(%T %P) {
|
|
; CHECK-LABEL: @test1
|
|
; CHECK: %const = bitcast i32 256 to i32
|
|
; CHECK: %1 = insertvalue %T %P, i32 %const, 256
|
|
; CHECK: %2 = insertvalue %T %P, i32 %const, 256
|
|
%1 = insertvalue %T %P, i32 256, 256
|
|
%2 = insertvalue %T %P, i32 256, 256
|
|
ret void
|
|
}
|