From 6101e4ffdf586aff790b80bda3d8accaaeeb03c4 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Sat, 13 Oct 2007 03:10:54 +0000 Subject: [PATCH] New tests. llvm-svn: 42948 --- test/CodeGen/X86/2007-10-12-SpillerUnfold1.ll | 45 +++++++++++++++ test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll | 57 +++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 test/CodeGen/X86/2007-10-12-SpillerUnfold1.ll create mode 100644 test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll diff --git a/test/CodeGen/X86/2007-10-12-SpillerUnfold1.ll b/test/CodeGen/X86/2007-10-12-SpillerUnfold1.ll new file mode 100644 index 00000000000..3a3c1137738 --- /dev/null +++ b/test/CodeGen/X86/2007-10-12-SpillerUnfold1.ll @@ -0,0 +1,45 @@ +; RUN: llvm-as < %s | llc -march=x86 -mattr=+sse2 | grep addss | not grep esp + +define fastcc void @fht(float* %fz, i16 signext %n) { +entry: + br i1 true, label %bb171.preheader, label %bb431 + +bb171.preheader: ; preds = %entry + %tmp176 = add float 0.000000e+00, 1.000000e+00 ; [#uses=2] + %gi.1 = getelementptr float* %fz, i32 0 ; [#uses=2] + %tmp240 = load float* %gi.1, align 4 ; [#uses=1] + %tmp242 = sub float %tmp240, 0.000000e+00 ; [#uses=2] + %tmp251 = getelementptr float* %fz, i32 0 ; [#uses=1] + %tmp252 = load float* %tmp251, align 4 ; [#uses=1] + %tmp258 = getelementptr float* %fz, i32 0 ; [#uses=2] + %tmp259 = load float* %tmp258, align 4 ; [#uses=2] + %tmp261 = mul float %tmp259, %tmp176 ; [#uses=1] + %tmp262 = sub float 0.000000e+00, %tmp261 ; [#uses=2] + %tmp269 = mul float %tmp252, %tmp176 ; [#uses=1] + %tmp276 = mul float %tmp259, 0.000000e+00 ; [#uses=1] + %tmp277 = add float %tmp269, %tmp276 ; [#uses=2] + %tmp281 = getelementptr float* %fz, i32 0 ; [#uses=1] + %tmp282 = load float* %tmp281, align 4 ; [#uses=2] + %tmp284 = sub float %tmp282, %tmp277 ; [#uses=1] + %tmp291 = add float %tmp282, %tmp277 ; [#uses=1] + %tmp298 = sub float 0.000000e+00, %tmp262 ; [#uses=1] + %tmp305 = add float 0.000000e+00, %tmp262 ; [#uses=1] + %tmp315 = mul float 0.000000e+00, %tmp291 ; [#uses=1] + %tmp318 = mul float 0.000000e+00, %tmp298 ; [#uses=1] + %tmp319 = add float %tmp315, %tmp318 ; [#uses=1] + %tmp329 = add float 0.000000e+00, %tmp319 ; [#uses=1] + store float %tmp329, float* null, align 4 + %tmp336 = sub float %tmp242, 0.000000e+00 ; [#uses=1] + store float %tmp336, float* %tmp258, align 4 + %tmp343 = add float %tmp242, 0.000000e+00 ; [#uses=1] + store float %tmp343, float* null, align 4 + %tmp355 = mul float 0.000000e+00, %tmp305 ; [#uses=1] + %tmp358 = mul float 0.000000e+00, %tmp284 ; [#uses=1] + %tmp359 = add float %tmp355, %tmp358 ; [#uses=1] + %tmp369 = add float 0.000000e+00, %tmp359 ; [#uses=1] + store float %tmp369, float* %gi.1, align 4 + ret void + +bb431: ; preds = %entry + ret void +} diff --git a/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll b/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll new file mode 100644 index 00000000000..3016a013f2c --- /dev/null +++ b/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll @@ -0,0 +1,57 @@ +; RUN: llvm-as < %s | llc -march=x86 | grep sarl | not grep esp + +define i16 @t(i16* %qmatrix, i16* %dct, i16* %acBaseTable, i16* %acExtTable, i16 signext %acBaseRes, i16 signext %acMaskRes, i16 signext %acExtRes, i32* %bitptr, i32* %source, i32 %markerPrefix, i8** %byteptr, i32 %scale, i32 %round, i32 %bits) signext { +entry: + br label %cond_next127 + +cond_next127: ; preds = %cond_next391, %entry + %tmp151 = add i32 0, %round ; [#uses=1] + %tmp153 = ashr i32 %tmp151, %scale ; [#uses=1] + %tmp158 = xor i32 0, %tmp153 ; [#uses=1] + %tmp160 = or i32 %tmp158, 0 ; [#uses=1] + %tmp180181 = sext i16 0 to i32 ; [#uses=1] + %tmp183 = add i32 %tmp160, 1 ; [#uses=1] + br i1 false, label %cond_true188, label %cond_next245 + +cond_true188: ; preds = %cond_next127 + ret i16 0 + +cond_next245: ; preds = %cond_next127 + %tmp253444 = lshr i32 %tmp180181, 4 ; [#uses=1] + %tmp254 = and i32 %tmp253444, 15 ; [#uses=1] + br i1 false, label %cond_true267, label %cond_next391 + +cond_true267: ; preds = %cond_next245 + %tmp269 = load i8** %byteptr, align 4 ; [#uses=3] + %tmp270 = load i8* %tmp269, align 1 ; [#uses=1] + %tmp270271 = zext i8 %tmp270 to i32 ; [#uses=1] + %tmp272 = getelementptr i8* %tmp269, i32 1 ; [#uses=2] + store i8* %tmp272, i8** %byteptr, align 4 + %tmp276 = load i8* %tmp272, align 1 ; [#uses=1] + %tmp278 = getelementptr i8* %tmp269, i32 2 ; [#uses=1] + store i8* %tmp278, i8** %byteptr, align 4 + %tmp286 = icmp eq i32 %tmp270271, %markerPrefix ; [#uses=1] + %cond = icmp eq i8 %tmp276, 0 ; [#uses=1] + %bothcond = and i1 %tmp286, %cond ; [#uses=1] + br i1 %bothcond, label %cond_true294, label %cond_next327 + +cond_true294: ; preds = %cond_true267 + ret i16 0 + +cond_next327: ; preds = %cond_true267 + br i1 false, label %cond_true343, label %cond_next391 + +cond_true343: ; preds = %cond_next327 + %tmp345 = load i8** %byteptr, align 4 ; [#uses=1] + store i8* null, i8** %byteptr, align 4 + store i8* %tmp345, i8** %byteptr, align 4 + br label %cond_next391 + +cond_next391: ; preds = %cond_true343, %cond_next327, %cond_next245 + %tmp422445 = add i32 %tmp254, %tmp183 ; [#uses=1] + %tmp429448 = icmp ult i32 %tmp422445, 63 ; [#uses=1] + br i1 %tmp429448, label %cond_next127, label %UnifiedReturnBlock + +UnifiedReturnBlock: ; preds = %cond_next391 + ret i16 0 +}