You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.167
Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
parent
e19d552987
commit
b084638f15
213
external/llvm/test/CodeGen/XCore/codemodel.ll
vendored
213
external/llvm/test/CodeGen/XCore/codemodel.ll
vendored
@ -1,213 +0,0 @@
|
||||
|
||||
; RUN: not llc < %s -march=xcore -code-model=medium 2>&1 | FileCheck %s -check-prefix=BAD_CM
|
||||
; RUN: not llc < %s -march=xcore -code-model=kernel 2>&1 | FileCheck %s -check-prefix=BAD_CM
|
||||
; BAD_CM: Target only supports CodeModel Small or Large
|
||||
|
||||
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
; RUN: llc < %s -march=xcore -code-model=small | FileCheck %s
|
||||
; RUN: llc < %s -march=xcore -code-model=large | FileCheck %s -check-prefix=LARGE
|
||||
|
||||
|
||||
; CHECK-LABEL: test:
|
||||
; CHECK: zext r0, 1
|
||||
; CHECK: bt r0, [[JUMP:.LBB[0-9_]*]]
|
||||
; CHECK: ldaw r0, dp[A2]
|
||||
; CHECK: retsp 0
|
||||
; CHECK: [[JUMP]]
|
||||
; CHECK: ldaw r0, dp[A1]
|
||||
; CHECK: retsp 0
|
||||
; LARGE-LABEL: test:
|
||||
; LARGE: zext r0, 1
|
||||
; LARGE: ldaw r11, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE: mov r1, r11
|
||||
; LARGE: ldaw r11, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE: bt r0, [[JUMP:.LBB[0-9_]*]]
|
||||
; LARGE: mov r11, r1
|
||||
; LARGE: [[JUMP]]
|
||||
; LARGE: ldw r0, r11[0]
|
||||
; LARGE: retsp 0
|
||||
@A1 = external global [50000 x i32]
|
||||
@A2 = external global [50000 x i32]
|
||||
define [50000 x i32]* @test(i1 %bool) nounwind {
|
||||
entry:
|
||||
%Addr = select i1 %bool, [50000 x i32]* @A1, [50000 x i32]* @A2
|
||||
ret [50000 x i32]* %Addr
|
||||
}
|
||||
|
||||
|
||||
; CHECK: .section .cp.rodata.cst4,"aMc",@progbits,4
|
||||
; CHECK: .long 65536
|
||||
; CHECK: .text
|
||||
; CHECK-LABEL: f:
|
||||
; CHECK: ldc r1, 65532
|
||||
; CHECK: add r1, r0, r1
|
||||
; CHECK: ldw r1, r1[0]
|
||||
; CHECK: ldw r2, cp[.LCPI{{[0-9_]*}}]
|
||||
; CHECK: add r0, r0, r2
|
||||
; CHECK: ldw r0, r0[0]
|
||||
; CHECK: add r0, r1, r0
|
||||
; CHECK: ldw r1, dp[l]
|
||||
; CHECK: add r0, r0, r1
|
||||
; CHECK: ldw r1, dp[l+4]
|
||||
; CHECK: add r0, r0, r1
|
||||
; CHECK: ldw r1, dp[l+392]
|
||||
; CHECK: add r0, r0, r1
|
||||
; CHECK: ldw r1, dp[l+396]
|
||||
; CHECK: add r0, r0, r1
|
||||
; CHECK: ldw r1, dp[s]
|
||||
; CHECK: add r0, r0, r1
|
||||
; CHECK: ldw r1, dp[s+36]
|
||||
; CHECK: add r0, r0, r1
|
||||
; CHECK: retsp 0
|
||||
;
|
||||
; LARGE: .section .cp.rodata.cst4,"aMc",@progbits,4
|
||||
; LARGE: .long 65536
|
||||
; LARGE: .section .cp.rodata,"ac",@progbits
|
||||
; LARGE: .long l
|
||||
; LARGE: .long l+4
|
||||
; LARGE: .long l+392
|
||||
; LARGE: .long l+396
|
||||
; LARGE: .text
|
||||
; LARGE-LABEL: f:
|
||||
; LARGE: ldc r1, 65532
|
||||
; LARGE: add r1, r0, r1
|
||||
; LARGE: ldw r1, r1[0]
|
||||
; LARGE: ldw r2, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE: add r0, r0, r2
|
||||
; LARGE: ldw r0, r0[0]
|
||||
; LARGE: add r0, r1, r0
|
||||
; LARGE: ldw r1, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE: ldw r1, r1[0]
|
||||
; LARGE: add r0, r0, r1
|
||||
; LARGE: ldw r1, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE: ldw r1, r1[0]
|
||||
; LARGE: add r0, r0, r1
|
||||
; LARGE: ldw r1, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE: ldw r1, r1[0]
|
||||
; LARGE: add r0, r0, r1
|
||||
; LARGE: ldw r1, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE: ldw r1, r1[0]
|
||||
; LARGE: add r0, r0, r1
|
||||
; LARGE: ldw r1, dp[s]
|
||||
; LARGE: add r0, r0, r1
|
||||
; LARGE: ldw r1, dp[s+36]
|
||||
; LARGE: add r0, r0, r1
|
||||
; LARGE: retsp 0
|
||||
define i32 @f(i32* %i) {
|
||||
entry:
|
||||
%0 = getelementptr inbounds i32, i32* %i, i32 16383
|
||||
%1 = load i32, i32* %0
|
||||
%2 = getelementptr inbounds i32, i32* %i, i32 16384
|
||||
%3 = load i32, i32* %2
|
||||
%4 = add nsw i32 %1, %3
|
||||
%5 = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @l, i32 0, i32 0)
|
||||
%6 = add nsw i32 %4, %5
|
||||
%7 = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @l, i32 0, i32 1)
|
||||
%8 = add nsw i32 %6, %7
|
||||
%9 = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @l, i32 0, i32 98)
|
||||
%10 = add nsw i32 %8, %9
|
||||
%11 = load i32, i32* getelementptr inbounds ([100 x i32], [100 x i32]* @l, i32 0, i32 99)
|
||||
%12 = add nsw i32 %10, %11
|
||||
%13 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @s, i32 0, i32 0)
|
||||
%14 = add nsw i32 %12, %13
|
||||
%15 = load i32, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @s, i32 0, i32 9)
|
||||
%16 = add nsw i32 %14, %15
|
||||
ret i32 %16
|
||||
}
|
||||
|
||||
|
||||
; CHECK-LABEL: UnknownSize:
|
||||
; CHECK: ldw r0, dp[NoSize+40]
|
||||
; CHECK-NEXT: retsp 0
|
||||
;
|
||||
; LARGE: .section .cp.rodata,"ac",@progbits
|
||||
; LARGE: .LCPI{{[0-9_]*}}
|
||||
; LARGE-NEXT: .long NoSize
|
||||
; LARGE-NEXT: .text
|
||||
; LARGE-LABEL: UnknownSize:
|
||||
; LARGE: ldw r0, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE-NEXT: ldw r0, r0[0]
|
||||
; LARGE-NEXT: retsp 0
|
||||
@NoSize = external global [0 x i32]
|
||||
define i32 @UnknownSize() nounwind {
|
||||
entry:
|
||||
%0 = load i32, i32* getelementptr inbounds ([0 x i32], [0 x i32]* @NoSize, i32 0, i32 10)
|
||||
ret i32 %0
|
||||
}
|
||||
|
||||
|
||||
; CHECK-LABEL: UnknownStruct:
|
||||
; CHECK: ldaw r0, dp[Unknown]
|
||||
; CHECK-NEXT: retsp 0
|
||||
;
|
||||
; LARGE: .section .cp.rodata,"ac",@progbits
|
||||
; LARGE: .LCPI{{[0-9_]*}}
|
||||
; LARGE-NEXT: .long Unknown
|
||||
; LARGE-NEXT: .text
|
||||
; LARGE-LABEL: UnknownStruct:
|
||||
; LARGE: ldw r0, cp[.LCPI{{[0-9_]*}}]
|
||||
; LARGE-NEXT: retsp 0
|
||||
%Struct = type opaque
|
||||
@Unknown = external global %Struct
|
||||
define %Struct* @UnknownStruct() nounwind {
|
||||
entry:
|
||||
ret %Struct* @Unknown
|
||||
}
|
||||
|
||||
|
||||
; CHECK: .section .dp.bss,"awd",@nobits
|
||||
; CHECK-LABEL: l:
|
||||
; CHECK: .space 400
|
||||
; LARGE: .section .dp.bss.large,"awd",@nobits
|
||||
; LARGE-LABEL: l:
|
||||
; LARGE: .space 400
|
||||
@l = global [100 x i32] zeroinitializer
|
||||
|
||||
; CHECK-LABEL: s:
|
||||
; CHECK: .space 40
|
||||
; LARGE: .section .dp.bss,"awd",@nobits
|
||||
; LARGE-LABEL: s:
|
||||
; LARGE: .space 40
|
||||
@s = global [10 x i32] zeroinitializer
|
||||
|
||||
; CHECK: .section .dp.rodata,"awd",@progbits
|
||||
; CHECK-LABEL: cl:
|
||||
; CHECK: .space 400
|
||||
; LARGE: .section .dp.rodata.large,"awd",@progbits
|
||||
; LARGE-LABEL: cl:
|
||||
; LARGE: .space 400
|
||||
@cl = constant [100 x i32] zeroinitializer
|
||||
|
||||
; CHECK-LABEL: cs:
|
||||
; CHECK: .space 40
|
||||
; LARGE: .section .dp.rodata,"awd",@progbits
|
||||
; LARGE-LABEL: cs:
|
||||
; LARGE: .space 40
|
||||
@cs = constant [10 x i32] zeroinitializer
|
||||
|
||||
; CHECK: .section .cp.rodata,"ac",@progbits
|
||||
; CHECK-LABEL: icl:
|
||||
; CHECK: .space 400
|
||||
; LARGE: .section .cp.rodata.large,"ac",@progbits
|
||||
; LARGE-LABEL: icl:
|
||||
; LARGE: .space 400
|
||||
@icl = internal constant [100 x i32] zeroinitializer
|
||||
|
||||
; CHECK-LABEL: cs:
|
||||
; CHECK: .space 40
|
||||
; LARGE: .section .cp.rodata,"ac",@progbits
|
||||
; LARGE-LABEL: cs:
|
||||
; LARGE: .space 40
|
||||
@ics = internal constant [10 x i32] zeroinitializer
|
||||
|
||||
; CHECK: .section .cp.namedsection,"ac",@progbits
|
||||
; CHECK-LABEL: cpsec:
|
||||
; CHECK: .long 0
|
||||
@cpsec = constant i32 0, section ".cp.namedsection"
|
||||
|
||||
; CHECK: .section .dp.namedsection,"awd",@progbits
|
||||
; CHECK-LABEL: dpsec:
|
||||
; CHECK: .long 0
|
||||
@dpsec = global i32 0, section ".dp.namedsection"
|
||||
|
Reference in New Issue
Block a user