1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00

[InstSimplify] Add tests for gep p, -p without inbounds (NFC)

This is additional test coverage for D93820.
This commit is contained in:
Nikita Popov 2021-01-01 17:00:02 +01:00
parent 734dc46f1e
commit 3cbfb45ee6

View File

@ -43,6 +43,17 @@ define i64* @test3(i64* %b, i64* %e) {
define %struct.A* @test4(%struct.A* %b) {
; CHECK-LABEL: @test4(
; CHECK-NEXT: ret %struct.A* null
;
%b_ptr = ptrtoint %struct.A* %b to i64
%sub = sub i64 0, %b_ptr
%sdiv = sdiv exact i64 %sub, 7
%gep = getelementptr %struct.A, %struct.A* %b, i64 %sdiv
ret %struct.A* %gep
}
define %struct.A* @test4_inbounds(%struct.A* %b) {
; CHECK-LABEL: @test4_inbounds(
; CHECK-NEXT: ret %struct.A* null
;
%b_ptr = ptrtoint %struct.A* %b to i64
%sub = sub i64 0, %b_ptr
@ -54,6 +65,16 @@ define %struct.A* @test4(%struct.A* %b) {
define i8* @test5(i8* %b) {
; CHECK-LABEL: @test5(
; CHECK-NEXT: ret i8* null
;
%b_ptr = ptrtoint i8* %b to i64
%sub = sub i64 0, %b_ptr
%gep = getelementptr i8, i8* %b, i64 %sub
ret i8* %gep
}
define i8* @test5_inbounds(i8* %b) {
; CHECK-LABEL: @test5_inbounds(
; CHECK-NEXT: ret i8* null
;
%b_ptr = ptrtoint i8* %b to i64
%sub = sub i64 0, %b_ptr
@ -64,6 +85,17 @@ define i8* @test5(i8* %b) {
define i64* @test6(i64* %b) {
; CHECK-LABEL: @test6(
; CHECK-NEXT: ret i64* null
;
%b_ptr = ptrtoint i64* %b to i64
%sub = sub i64 0, %b_ptr
%ashr = ashr exact i64 %sub, 3
%gep = getelementptr i64, i64* %b, i64 %ashr
ret i64* %gep
}
define i64* @test6_inbounds(i64* %b) {
; CHECK-LABEL: @test6_inbounds(
; CHECK-NEXT: ret i64* null
;
%b_ptr = ptrtoint i64* %b to i64
%sub = sub i64 0, %b_ptr