Compiling error in 64bit machines

Dear all, sorry to bother you.
I am new to llvm, and have a trivial question. When I compile the
original source code to llvm-IR, there is an error as follows:

$ llvm-gcc hello.c -o hello
/tmp/cc1vOzRT.s: Assembler messages:
/tmp/cc1vOzRT.s:9: Error: suffix or operands invalid for `push'
/tmp/cc1vOzRT.s:21: Error: suffix or operands invalid for `pop'

How did you compile LLVM?

Can you please 'file lvm-gcc'?

Thank you.
I just downloaded the binaries...
Maybe I should compile it in my PC. I'll have a try. Thanks.

$ file llvm-gcc
llvm-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not

There's your issue. You are running 32 bit llvm binaries. Either
download 64 bit binaries or compile them yourself.

The code generated is 32 bit, so your assembler does not like it. You have two options.

a) tell llvm-gcc to call the assembler and linker for 32 bit binaries.

b) tell llvm-gcc to emit llvm code (llvm-gcc --emit-llvm -c -o foo.bc foo.c) and then compile the bitcode to 64bit binary with llc (llc -march=x86-64 -o foo foo.bc)