From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22073 invoked by alias); 14 Jan 2019 18:41:44 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 22063 invoked by uid 89); 14 Jan 2019 18:41:43 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=m64, modification, 016, H*c:alternative X-HELO: mail-it1-f180.google.com Received: from mail-it1-f180.google.com (HELO mail-it1-f180.google.com) (209.85.166.180) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 14 Jan 2019 18:41:42 +0000 Received: by mail-it1-f180.google.com with SMTP id m8so8999268itk.0 for ; Mon, 14 Jan 2019 10:41:42 -0800 (PST) MIME-Version: 1.0 From: kamlesh kumar Date: Mon, 14 Jan 2019 18:41:00 -0000 Message-ID: Subject: RS6000 emitting sign extention for unsigned type To: gcc@gcc.gnu.org Cc: jakub@redhat.com Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2019-01/txt/msg00105.txt.bz2 Hi devs, consider below testcase: $cat test.c void foo(){ unsigned int x=-1; double d=x; } $./cc1 test.c -msoft-float -m64 $cat test.s .foo: .LFB0: mflr 0 std 0,16(1) stdu 1,-128(1) .LCFI0: li 9,-1 stw 9,112(1) lwa 9,112(1) mr 3,9 bl .__floatunsidf nop mr 9,3 std 9,120(1) nop addi 1,1,128 .LCFI1: ld 0,16(1) mtlr 0 blr .long 0 .byte 0,0,0,1,128,0,0,1 Here, you can see sign extension before calling the __floatunsidf routine. As per my understanding it should emit zero extension here because __floatunsidf has it argument as unsigned type. Like to know , Reason behind doing sign extension here , rather than zero extension. or if this is a bug? is there Any work around or hook? Even you can point me to the right direction in the source? where we need to do modification? Thanks ~Kamlesh Thanks ! Kamlesh