mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 13:11:39 +01:00
b3a8585bc1
`llc -march` is problematic because it only switches the target architecture, but leaves the operating system unchanged. This occasionally leads to indeterministic tests because the OS from LLVM_DEFAULT_TARGET_TRIPLE is used. However we can simply always use `llc -mtriple` instead. This changes all the tests to do this to avoid people using -march when they copy and paste parts of tests. This patch: - Removes -march if the .ll file already has a matching `target triple` directive or -mtriple argument. - In all other cases changes -march=ppc32/-march=ppc64 to -mtriple=ppc32--/-mtriple=ppc64-- See also the discussion in https://reviews.llvm.org/D35287 llvm-svn: 309754
14 lines
570 B
LLVM
14 lines
570 B
LLVM
; RUN: llc -verify-machineinstrs < %s | grep "rlwinm r3, r3, 23, 30, 30"
|
|
; PR1473
|
|
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"
|
|
target triple = "powerpc-apple-darwin8.8.0"
|
|
|
|
define zeroext i8 @foo(i16 zeroext %a) {
|
|
%tmp2 = lshr i16 %a, 10 ; <i16> [#uses=1]
|
|
%tmp23 = trunc i16 %tmp2 to i8 ; <i8> [#uses=1]
|
|
%tmp4 = shl i8 %tmp23, 1 ; <i8> [#uses=1]
|
|
%tmp5 = and i8 %tmp4, 2 ; <i8> [#uses=1]
|
|
ret i8 %tmp5
|
|
}
|
|
|