16d4b1c04SSimon Atanasyan; RUN: llc -march=mipsel -relocation-model=pic < %s | FileCheck %s 26d4b1c04SSimon Atanasyan 36d4b1c04SSimon Atanasyan@data = global [8193 x i32] zeroinitializer 46d4b1c04SSimon Atanasyan 56d4b1c04SSimon Atanasyandefine void @R(i32 *%p) nounwind { 66d4b1c04SSimon Atanasyanentry: 76d4b1c04SSimon Atanasyan ; CHECK-LABEL: R: 86d4b1c04SSimon Atanasyan 9*f430c1ebSNikita Popov call void asm sideeffect "lw $$1, $0", "*R,~{$1}"(i32* elementtype(i32) getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 0)) 106d4b1c04SSimon Atanasyan 116d4b1c04SSimon Atanasyan ; CHECK: lw $[[BASEPTR:[0-9]+]], %got(data)( 126d4b1c04SSimon Atanasyan ; CHECK: #APP 136d4b1c04SSimon Atanasyan ; CHECK: lw $1, 0($[[BASEPTR]]) 146d4b1c04SSimon Atanasyan ; CHECK: #NO_APP 156d4b1c04SSimon Atanasyan 166d4b1c04SSimon Atanasyan ret void 176d4b1c04SSimon Atanasyan} 186d4b1c04SSimon Atanasyan 196d4b1c04SSimon Atanasyandefine void @R_offset_4(i32 *%p) nounwind { 206d4b1c04SSimon Atanasyanentry: 216d4b1c04SSimon Atanasyan ; CHECK-LABEL: R_offset_4: 226d4b1c04SSimon Atanasyan 23*f430c1ebSNikita Popov call void asm sideeffect "lw $$1, $0", "*R,~{$1}"(i32* elementtype(i32) getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 1)) 246d4b1c04SSimon Atanasyan 256d4b1c04SSimon Atanasyan ; CHECK: lw $[[BASEPTR:[0-9]+]], %got(data)( 266d4b1c04SSimon Atanasyan ; CHECK: #APP 276d4b1c04SSimon Atanasyan ; CHECK: lw $1, 4($[[BASEPTR]]) 286d4b1c04SSimon Atanasyan ; CHECK: #NO_APP 296d4b1c04SSimon Atanasyan 306d4b1c04SSimon Atanasyan ret void 316d4b1c04SSimon Atanasyan} 326d4b1c04SSimon Atanasyan 336d4b1c04SSimon Atanasyandefine void @R_offset_254(i32 *%p) nounwind { 346d4b1c04SSimon Atanasyanentry: 356d4b1c04SSimon Atanasyan ; CHECK-LABEL: R_offset_254: 366d4b1c04SSimon Atanasyan 37*f430c1ebSNikita Popov call void asm sideeffect "lw $$1, $0", "*R,~{$1}"(i32* elementtype(i32) getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 63)) 386d4b1c04SSimon Atanasyan 396d4b1c04SSimon Atanasyan ; CHECK-DAG: lw $[[BASEPTR:[0-9]+]], %got(data)( 406d4b1c04SSimon Atanasyan ; CHECK: #APP 416d4b1c04SSimon Atanasyan ; CHECK: lw $1, 252($[[BASEPTR]]) 426d4b1c04SSimon Atanasyan ; CHECK: #NO_APP 436d4b1c04SSimon Atanasyan 446d4b1c04SSimon Atanasyan ret void 456d4b1c04SSimon Atanasyan} 466d4b1c04SSimon Atanasyan 476d4b1c04SSimon Atanasyandefine void @R_offset_256(i32 *%p) nounwind { 486d4b1c04SSimon Atanasyanentry: 496d4b1c04SSimon Atanasyan ; CHECK-LABEL: R_offset_256: 506d4b1c04SSimon Atanasyan 51*f430c1ebSNikita Popov call void asm sideeffect "lw $$1, $0", "*R,~{$1}"(i32* elementtype(i32) getelementptr inbounds ([8193 x i32], [8193 x i32]* @data, i32 0, i32 64)) 526d4b1c04SSimon Atanasyan 536d4b1c04SSimon Atanasyan ; CHECK-DAG: lw $[[BASEPTR:[0-9]+]], %got(data)( 546d4b1c04SSimon Atanasyan ; CHECK: addiu $[[BASEPTR2:[0-9]+]], $[[BASEPTR]], 256 556d4b1c04SSimon Atanasyan ; CHECK: #APP 566d4b1c04SSimon Atanasyan ; CHECK: lw $1, 0($[[BASEPTR2]]) 576d4b1c04SSimon Atanasyan ; CHECK: #NO_APP 586d4b1c04SSimon Atanasyan 596d4b1c04SSimon Atanasyan ret void 606d4b1c04SSimon Atanasyan} 61