mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-28 06:32:09 +00:00
Add missing test for GEP + bitcast transformation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188529 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4e31acb558
commit
beccdd3ede
@ -573,4 +573,28 @@ define i1 @pr16483([1 x i8]* %a, [1 x i8]* %b) {
|
|||||||
; CHECK-NEXT: icmp ult [1 x i8]* %a, %b
|
; CHECK-NEXT: icmp ult [1 x i8]* %a, %b
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; The element size of the array matches the element size of the pointer
|
||||||
|
define i64 @test_gep_bitcast_array_same_size_element([100 x double]* %arr, i64 %N) {
|
||||||
|
; CHECK-LABEL: @test_gep_bitcast_array_same_size_element(
|
||||||
|
; CHECK: getelementptr [100 x double]* %arr, i64 0, i64 %V
|
||||||
|
; CHECK: bitcast
|
||||||
|
%cast = bitcast [100 x double]* %arr to i64*
|
||||||
|
%V = mul i64 %N, 8
|
||||||
|
%t = getelementptr i64* %cast, i64 %V
|
||||||
|
%x = load i64* %t
|
||||||
|
ret i64 %x
|
||||||
|
}
|
||||||
|
|
||||||
|
; The element size of the array is different the element size of the pointer
|
||||||
|
define i8 @test_gep_bitcast_array_different_size_element([100 x double]* %arr, i64 %N) {
|
||||||
|
; CHECK-LABEL: @test_gep_bitcast_array_different_size_element(
|
||||||
|
; CHECK: getelementptr [100 x double]* %arr, i64 0, i64 %N
|
||||||
|
; CHECK: bitcast
|
||||||
|
%cast = bitcast [100 x double]* %arr to i8*
|
||||||
|
%V = mul i64 %N, 8
|
||||||
|
%t = getelementptr i8* %cast, i64 %V
|
||||||
|
%x = load i8* %t
|
||||||
|
ret i8 %x
|
||||||
|
}
|
||||||
|
|
||||||
; CHECK: attributes [[NUW]] = { nounwind }
|
; CHECK: attributes [[NUW]] = { nounwind }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user