[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