[LLVMdev] problem with sgt's on Sparc machine (original) (raw)
Christine Cheng clcheng at stanford.edu
Thu Sep 15 09:30:17 PDT 2011
- Previous message: [LLVMdev] [llvm-devmeeting] 2011 LLVM Annual Developers' Meeting - Update
- Next message: [LLVMdev] problem with sgt's on Sparc machine
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
I compiled the following code on a Sparc machine, basically it produce different results than a X86 machine.
; MduleID = '' target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32" target triple = "i386-pc-linux-gnu"
@P = global i32 1 @dP = global i32 1
@.str = private constant [4 x i8] c"%d\0A\00", align 1
define i32 @main() nounwind {
entry: %. = load i32* @P, align 4 %t1 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32 %. ) nounwind %d. = load i32* @dP, align 4 %t2 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32 %d. ) nounwind %0 = icmp sgt i32 %., 0 %1 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %0 ) nounwind %2 = icmp sgt i32 %d., 0 %3 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %2 ) nounwind %t3 = icmp eq i32 %d., %d. %t4 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %t3 ) nounwind %4 = icmp sgt i32 1, 0 %5 = icmp sgt i32 1, 0 %6 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %4 ) nounwind %7 = tail call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i1 %5 ) nounwind ret i32 undef }
declare i32 @printf(i8* nocapture, ...) nounwind
On Sparc I get: 1 1 0 0 1 1 1
On X86 I get all 1's which I believe is correct.
I used the following command to compile on sparc: llc -march=sparc llvm_print.bc -o llvm_print.s ( on a x86 machine) /usr/sfw/bin/gcc -mcpu=v9 -mtune=v9 llvm_print.s -o llvm_print (on sparc)
Could anyone give me some clue about what's going on? Is 'sgt' not working for loaded values?
Thanks,
Christine -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110915/c31ebb52/attachment.html>
- Previous message: [LLVMdev] [llvm-devmeeting] 2011 LLVM Annual Developers' Meeting - Update
- Next message: [LLVMdev] problem with sgt's on Sparc machine
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]