~ubuntu-branches/ubuntu/maverick/clamav/maverick-backports

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll

  • Committer: Bazaar Package Importer
  • Author(s): Stephen Gran, Stephen Gran, Michael Tautschnig
  • Date: 2010-04-26 21:41:18 UTC
  • mfrom: (2.1.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100426214118-i6lo606wnh7ywfj6
Tags: 0.96+dfsg-4
[ Stephen Gran ]
* Fixed typo in clamav-milter's postinst

[ Michael Tautschnig ]
* Fixed typo in clamav-freshclam's postinst (closes: #579271)
* Debconf translation updates
  - Portuguese (closes: #579068)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc < %s | grep {subfc r3,r5,r4}
 
2
; RUN: llc < %s | grep {subfze r4,r6}
 
3
; RUN: llc < %s -regalloc=local | grep {subfc r6,r5,r4}
 
4
; RUN: llc < %s -regalloc=local | grep {subfze r3,r3}
 
5
; The first argument of subfc must not be the same as any other register.
 
6
 
 
7
; PR1357
 
8
 
 
9
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"
 
10
target triple = "powerpc-apple-darwin8.8.0"
 
11
 
 
12
;long long test(int A, int B, int C) {
 
13
;  unsigned X, Y;
 
14
;  __asm__ ("subf%I3c %1,%4,%3\n\tsubfze %0,%2"
 
15
;                 : "=r" (X), "=&r" (Y)
 
16
;                 : "r" (A), "rI" (B), "r" (C));
 
17
;  return ((long long)Y << 32) | X;
 
18
;}
 
19
 
 
20
define i64 @test(i32 %A, i32 %B, i32 %C) nounwind {
 
21
entry:
 
22
        %Y = alloca i32, align 4                ; <i32*> [#uses=2]
 
23
        %tmp4 = call i32 asm "subf${3:I}c $1,$4,$3\0A\09subfze $0,$2", "=r,=*&r,r,rI,r"( i32* %Y, i32 %A, i32 %B, i32 %C )              ; <i32> [#uses=1]
 
24
        %tmp5 = load i32* %Y            ; <i32> [#uses=1]
 
25
        %tmp56 = zext i32 %tmp5 to i64          ; <i64> [#uses=1]
 
26
        %tmp7 = shl i64 %tmp56, 32              ; <i64> [#uses=1]
 
27
        %tmp89 = zext i32 %tmp4 to i64          ; <i64> [#uses=1]
 
28
        %tmp10 = or i64 %tmp7, %tmp89           ; <i64> [#uses=1]
 
29
        ret i64 %tmp10
 
30
}