Changeset View
Changeset View
Standalone View
Standalone View
test/CodeGen/Generic/overloaded-intrinsic-name.ll
Show All 38 Lines | define <3 x i32>* @test_vAny(<3 x i32>* %v) gc "statepoint-example" { | ||||
ret <3 x i32>* %v-new | ret <3 x i32>* %v-new | ||||
} | } | ||||
%struct.test = type { i32, i1 } | %struct.test = type { i32, i1 } | ||||
; struct | ; struct | ||||
define %struct.test* @test_struct(%struct.test* %v) gc "statepoint-example" { | define %struct.test* @test_struct(%struct.test* %v) gc "statepoint-example" { | ||||
%tok = call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 0, %struct.test* %v) | %tok = call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 0, %struct.test* %v) | ||||
%v-new = call %struct.test* @llvm.experimental.gc.relocate.p0struct.test(token %tok, i32 7, i32 7) | %v-new = call %struct.test* @llvm.experimental.gc.relocate.p0s_struct.tests(token %tok, i32 7, i32 7) | ||||
ret %struct.test* %v-new | ret %struct.test* %v-new | ||||
} | } | ||||
; literal struct with nested literal struct | |||||
define {i64, i64, {i64} }* @test_literal_struct({i64, i64, {i64}}* %v) gc "statepoint-example" { | |||||
%tok = call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 0, {i64, i64, {i64}} *%v) | |||||
%v-new = call {i64, i64, {i64}}* @llvm.experimental.gc.relocate.p0sl_i64i64sl_i64ss.test(token %tok, i32 7, i32 7) | |||||
ret {i64, i64, {i64}}* %v-new | |||||
} | |||||
; struct with a horrible name, broken when structs were unprefixed | |||||
%i32 = type { i32 } | |||||
define %i32* @test_i32_struct(%i32* %v) gc "statepoint-example" { | |||||
entry: | |||||
%tok = call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 0, %i32* %v) | |||||
%v-new = call %i32* @llvm.experimental.gc.relocate.p0s_i32s(token %tok, i32 7, i32 7) | |||||
ret %i32* %v-new | |||||
} | |||||
declare zeroext i1 @return_i1() | declare zeroext i1 @return_i1() | ||||
declare token @llvm.experimental.gc.statepoint.p0f_i1f(i64, i32, i1 ()*, i32, i32, ...) | declare token @llvm.experimental.gc.statepoint.p0f_i1f(i64, i32, i1 ()*, i32, i32, ...) | ||||
declare i32* @llvm.experimental.gc.relocate.p0i32(token, i32, i32) | declare i32* @llvm.experimental.gc.relocate.p0i32(token, i32, i32) | ||||
declare float* @llvm.experimental.gc.relocate.p0f32(token, i32, i32) | declare float* @llvm.experimental.gc.relocate.p0f32(token, i32, i32) | ||||
declare [3 x i32]* @llvm.experimental.gc.relocate.p0a3i32(token, i32, i32) | declare [3 x i32]* @llvm.experimental.gc.relocate.p0a3i32(token, i32, i32) | ||||
declare <3 x i32>* @llvm.experimental.gc.relocate.p0v3i32(token, i32, i32) | declare <3 x i32>* @llvm.experimental.gc.relocate.p0v3i32(token, i32, i32) | ||||
declare %struct.test* @llvm.experimental.gc.relocate.p0struct.test(token, i32, i32) | declare %struct.test* @llvm.experimental.gc.relocate.p0s_struct.tests(token, i32, i32) | ||||
declare {i64, i64, {i64}}* @llvm.experimental.gc.relocate.p0sl_i64i64sl_i64ss.test(token, i32, i32) | |||||
dberlin: Note that these will assert if they don't end up with the right name, so CHECK lines are not… | |||||
declare %i32* @llvm.experimental.gc.relocate.p0s_i32s(token, i32, i32) |
Note that these will assert if they don't end up with the right name, so CHECK lines are not strictly necessary.