[llvm-commits] [llvm] r48730 - /llvm/trunk/test/CFrontend/2008-03-24-BitFiel-And-Alloca.c
Chris Lattner
clattner at apple.com
Mon Mar 24 13:39:56 PDT 2008
On Mar 24, 2008, at 10:16 AM, Devang Patel wrote:
> Author: dpatel
> Date: Mon Mar 24 12:16:39 2008
> New Revision: 48730
>
> URL: http://llvm.org/viewvc/llvm-project?rev=48730&view=rev
> Log:
> Add new test.
>
> Added:
> llvm/trunk/test/CFrontend/2008-03-24-BitFiel-And-Alloca.c
Hi Devang,
Are you testing the front-end here or the optimizer? If you're
testing the front-end, don't pass -O2. If you're testing the
optimizer, write this as a .ll file, not a .c file.
-Chris
>
>
> Added: llvm/trunk/test/CFrontend/2008-03-24-BitFiel-And-Alloca.c
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CFrontend/2008-03-24-BitFiel-And-Alloca.c?rev=48730&view=auto
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/test/CFrontend/2008-03-24-BitFiel-And-Alloca.c (added)
> +++ llvm/trunk/test/CFrontend/2008-03-24-BitFiel-And-Alloca.c Mon
> Mar 24 12:16:39 2008
> @@ -0,0 +1,87 @@
> +// RUN: %llvmgcc -O2 -S %s -o - | not grep alloca
> +enum {
> + PP_C,
> + PP_D,
> + PP_R,
> + PP_2D,
> + PP_1D,
> + PP_SR,
> + PP_S2D,
> + PP_S1D,
> + PP_SC
> +};
> +
> +enum {
> + G_VP,
> + G_FP,
> + G_VS,
> + G_GS,
> + G_FS
> +};
> +
> +enum {
> + G_NONE,
> + G_B,
> + G_R
> +};
> +
> +typedef union _Key {
> + struct {
> + unsigned int count : 2;
> + unsigned int Aconst : 1;
> + unsigned int Bconst : 1;
> + unsigned int Cconst : 1;
> + unsigned int Xused : 1;
> + unsigned int Yused : 1;
> + unsigned int Zused : 1;
> + unsigned int Wused : 1;
> + unsigned int ttype : 3;
> + unsigned int scalar : 1;
> + unsigned int AType : 4;
> + unsigned int BType : 4;
> + unsigned int CType : 4;
> + unsigned int RType : 4;
> + unsigned int Size : 2;
> + unsigned int prec : 1;
> +
> + unsigned int ASize : 2;
> + unsigned int BSize : 2;
> + unsigned int CSize : 2;
> + unsigned int tTex : 4;
> + unsigned int proj : 1;
> + unsigned int lod : 2;
> + unsigned int dvts : 1;
> + unsigned int uipad : 18;
> + } key_io;
> + struct {
> + unsigned int key0;
> + unsigned int key1;
> + } key;
> + unsigned long long lkey;
> +} Key;
> +
> +static inline __attribute__ ((always_inline)) void foo(const Key
> iospec, int* ret)
> +{
> + *ret=0;
> + if(((iospec.key_io.lod == G_B) &&
> + (iospec.key_io.ttype != G_VS) &&
> + (iospec.key_io.ttype != G_GS) &&
> + (iospec.key_io.ttype != G_FS)) ||
> +
> + (((iospec.key_io.tTex == PP_C) ||
> + (iospec.key_io.tTex == PP_SC)) &&
> + ((iospec.key_io.tTex == PP_SR) ||
> + (iospec.key_io.tTex == PP_S2D) ||
> + (iospec.key_io.tTex == PP_S1D) ||
> + (iospec.key_io.tTex == PP_SC))))
> + *ret=1;
> +}
> +
> +
> +extern int bar(unsigned long long key_token2)
> +{
> + int ret;
> + __attribute__ ((unused)) Key iospec = (Key) key_token2;
> + foo(iospec, &ret);
> + return ret;
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list