diff options
Diffstat (limited to 'test/CodeGen/Generic')
-rw-r--r-- | test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll | 3 | ||||
-rw-r--r-- | test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll | 3 | ||||
-rw-r--r-- | test/CodeGen/Generic/2007-12-17-InvokeAsm.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll | 4 | ||||
-rw-r--r-- | test/CodeGen/Generic/MachineBranchProb.ll | 6 | ||||
-rw-r--r-- | test/CodeGen/Generic/externally_available.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/Generic/icmp-illegal.ll | 1 | ||||
-rw-r--r-- | test/CodeGen/Generic/inline-asm-mem-clobber.ll | 3 | ||||
-rw-r--r-- | test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll | 1 | ||||
-rw-r--r-- | test/CodeGen/Generic/overloaded-intrinsic-name.ll | 35 | ||||
-rw-r--r-- | test/CodeGen/Generic/pr24662.ll | 12 | ||||
-rw-r--r-- | test/CodeGen/Generic/select-cc.ll | 6 | ||||
-rw-r--r-- | test/CodeGen/Generic/v-split.ll | 4 | ||||
-rw-r--r-- | test/CodeGen/Generic/vector-redux.ll | 3 | ||||
-rw-r--r-- | test/CodeGen/Generic/vector.ll | 3 |
15 files changed, 77 insertions, 11 deletions
diff --git a/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll b/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll index 010c0c553638..9e4664ad69c9 100644 --- a/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll +++ b/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll @@ -1,5 +1,8 @@ ; RUN: llc < %s +; Bug: PR31341 +; XFAIL: avr + ;; Date: Jul 29, 2003. ;; From: test/Programs/MultiSource/Ptrdist-bc ;; Function: --- diff --git a/test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll b/test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll index 21c05f17a7c5..e961ea764ec2 100644 --- a/test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll +++ b/test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll @@ -3,6 +3,9 @@ ; PR1308 ; PR1557 +; Bug: PR31336 +; XFAIL: avr + define i32 @stuff(i32, ...) { %foo = alloca i8* %bar = alloca i32* diff --git a/test/CodeGen/Generic/2007-12-17-InvokeAsm.ll b/test/CodeGen/Generic/2007-12-17-InvokeAsm.ll index fe7f463159a5..bb8058575c82 100644 --- a/test/CodeGen/Generic/2007-12-17-InvokeAsm.ll +++ b/test/CodeGen/Generic/2007-12-17-InvokeAsm.ll @@ -1,5 +1,7 @@ ; RUN: llc -no-integrated-as < %s +; XFAIL: avr + define fastcc void @bc__support__high_resolution_time__initialize_clock_rate() personality i32 (...)* @__gxx_personality_v0 { entry: invoke void asm "rdtsc\0A\09movl %eax, $0\0A\09movl %edx, $1", "=*imr,=*imr,~{dirflag},~{fpsr},~{flags},~{dx},~{ax}"( i32* null, i32* null ) diff --git a/test/CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll b/test/CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll index 5cc48c212c40..a9a33d72bca2 100644 --- a/test/CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll +++ b/test/CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll @@ -1,4 +1,8 @@ ; RUN: llc < %s + +; Bug: PR31898 +; XFAIL: avr + ; This caused ScheduleDAG to crash in EmitPhysRegCopy when searching ; the uses of a copy to a physical register without ignoring non-data ; dependence, PR10220. diff --git a/test/CodeGen/Generic/MachineBranchProb.ll b/test/CodeGen/Generic/MachineBranchProb.ll index 921fa62c1c43..804e5b0ce9fc 100644 --- a/test/CodeGen/Generic/MachineBranchProb.ll +++ b/test/CodeGen/Generic/MachineBranchProb.ll @@ -1,12 +1,12 @@ ; RUN: llc < %s -print-machineinstrs=expand-isel-pseudos -o /dev/null 2>&1 | FileCheck %s -; ARM & AArch64 run an extra SimplifyCFG which disrupts this test. -; XFAIL: arm,aarch64 - ; Hexagon runs passes that renumber the basic blocks, causing this test ; to fail. ; XFAIL: hexagon +; Bug: PR31899 +; XFAIL: avr + ; Make sure we have the correct weight attached to each successor. define i32 @test2(i32 %x) nounwind uwtable readnone ssp { ; CHECK-LABEL: Machine code for function test2: diff --git a/test/CodeGen/Generic/externally_available.ll b/test/CodeGen/Generic/externally_available.ll index 7976cc971880..2376bc739927 100644 --- a/test/CodeGen/Generic/externally_available.ll +++ b/test/CodeGen/Generic/externally_available.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s | not grep test_ +; RUN: llc -verify-machine-dom-info < %s | not grep test_ ; test_function should not be emitted to the .s file. define available_externally i32 @test_function() { diff --git a/test/CodeGen/Generic/icmp-illegal.ll b/test/CodeGen/Generic/icmp-illegal.ll index 23d20c04652f..77dd5a59dfd1 100644 --- a/test/CodeGen/Generic/icmp-illegal.ll +++ b/test/CodeGen/Generic/icmp-illegal.ll @@ -1,4 +1,3 @@ - ; RUN: llc < %s | FileCheck %s ; CHECK-LABEL: test_ult diff --git a/test/CodeGen/Generic/inline-asm-mem-clobber.ll b/test/CodeGen/Generic/inline-asm-mem-clobber.ll index be1e0a39b3b0..6184f803b71f 100644 --- a/test/CodeGen/Generic/inline-asm-mem-clobber.ll +++ b/test/CodeGen/Generic/inline-asm-mem-clobber.ll @@ -1,5 +1,8 @@ ; RUN: llc -O2 -no-integrated-as < %s | FileCheck %s +; Test uses 32-bit registers which aren't supported on AVR. +; XFAIL: avr + @G = common global i32 0, align 4 define i32 @foo(i8* %p) nounwind uwtable { diff --git a/test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll b/test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll index a21906cf6dc5..8c11cb2f0217 100644 --- a/test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll +++ b/test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll @@ -1,5 +1,4 @@ ; RUN: llc < %s -; XFAIL: hexagon declare { i64, double } @wild() define void @foo(i64* %p, double* %q) nounwind personality i32 (...)* @__gxx_personality_v0 { diff --git a/test/CodeGen/Generic/overloaded-intrinsic-name.ll b/test/CodeGen/Generic/overloaded-intrinsic-name.ll index 65fc9c1184cf..89a5f8077991 100644 --- a/test/CodeGen/Generic/overloaded-intrinsic-name.ll +++ b/test/CodeGen/Generic/overloaded-intrinsic-name.ll @@ -1,4 +1,4 @@ -; RUN: opt -verify -S < %s +; RUN: opt -verify -S < %s | FileCheck %s ; Tests the name mangling performed by the codepath following ; getMangledTypeStr(). Only tests that code with the various manglings @@ -44,14 +44,43 @@ define <3 x i32>* @test_vAny(<3 x i32>* %v) gc "statepoint-example" { ; struct 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) - %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 } +; 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 +} +; completely broken intrinsic naming due to needing remangling. Just use random naming to test + +define %i32* @test_broken_names(%i32* %v) gc "statepoint-example" { +entry: + %tok = call fastcc token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.deadbeef(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 0, %i32* %v) +; Make sure we do not destroy the calling convention when remangling +; CHECK: fastcc + %v-new = call %i32* @llvm.experimental.gc.relocate.beefdead(token %tok, i32 7, i32 7) + ret %i32* %v-new +} declare zeroext i1 @return_i1() declare token @llvm.experimental.gc.statepoint.p0f_i1f(i64, i32, i1 ()*, i32, i32, ...) declare i32* @llvm.experimental.gc.relocate.p0i32(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.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) +declare %i32* @llvm.experimental.gc.relocate.p0s_i32s(token, i32, i32) +declare %i32* @llvm.experimental.gc.relocate.beefdead(token, i32, i32) +declare token @llvm.experimental.gc.statepoint.deadbeef(i64, i32, i1 ()*, i32, i32, ...) diff --git a/test/CodeGen/Generic/pr24662.ll b/test/CodeGen/Generic/pr24662.ll new file mode 100644 index 000000000000..5a10b9cb0acb --- /dev/null +++ b/test/CodeGen/Generic/pr24662.ll @@ -0,0 +1,12 @@ +; RUN: llc < %s -fast-isel +; RUN: llc < %s + +define i60 @PR24662a() { + ret i60 trunc (i670010 fptoui(float 0x400D9999A0000000 to i670010) to i60) +} + +define i60 @PR24662b() { + %1 = fptoui float 0x400D9999A0000000 to i670010 + %2 = trunc i670010 %1 to i60 + ret i60 %2 +} diff --git a/test/CodeGen/Generic/select-cc.ll b/test/CodeGen/Generic/select-cc.ll index 7510f701b147..c67f57fde18b 100644 --- a/test/CodeGen/Generic/select-cc.ll +++ b/test/CodeGen/Generic/select-cc.ll @@ -1,6 +1,8 @@ ; RUN: llc < %s -; PR2504 -; XFAIL: hexagon + +; PR31338 +; XFAIL: avr + define <2 x double> @vector_select(<2 x double> %x, <2 x double> %y) nounwind { %x.lo = extractelement <2 x double> %x, i32 0 ; <double> [#uses=1] %x.lo.ge = fcmp oge double %x.lo, 0.000000e+00 ; <i1> [#uses=1] diff --git a/test/CodeGen/Generic/v-split.ll b/test/CodeGen/Generic/v-split.ll index 00c62f389520..91aece94fecd 100644 --- a/test/CodeGen/Generic/v-split.ll +++ b/test/CodeGen/Generic/v-split.ll @@ -1,4 +1,8 @@ ; RUN: llc < %s + +; Bug: PR31898 +; XFAIL: avr + %f8 = type <8 x float> define void @test_f8(%f8 *%P, %f8* %Q, %f8 *%S) { diff --git a/test/CodeGen/Generic/vector-redux.ll b/test/CodeGen/Generic/vector-redux.ll index 8efdbf85b8c0..64562d6d9490 100644 --- a/test/CodeGen/Generic/vector-redux.ll +++ b/test/CodeGen/Generic/vector-redux.ll @@ -1,6 +1,9 @@ ; RUN: llc < %s -debug-only=isel -o /dev/null 2>&1 | FileCheck %s ; REQUIRES: asserts +; Bug: PR31898 +; XFAIL: avr + @a = global [1024 x i32] zeroinitializer, align 16 define i32 @reduce_add() { diff --git a/test/CodeGen/Generic/vector.ll b/test/CodeGen/Generic/vector.ll index 2d4dc501a53a..9c0cacdcd878 100644 --- a/test/CodeGen/Generic/vector.ll +++ b/test/CodeGen/Generic/vector.ll @@ -1,6 +1,9 @@ ; Test that vectors are scalarized/lowered correctly. ; RUN: llc < %s +; Bug: PR31898 +; XFAIL: avr + %d8 = type <8 x double> %f1 = type <1 x float> %f2 = type <2 x float> |