mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
1e7c397a16
The code paths in the absence of TargetMachine, TargetLowering or TargetRegisterInfo are poorly tested. As rL285987 said, requiring TargetPassConfig allows us to delete many (untested) checks littered everywhere. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D73754
18 lines
500 B
LLVM
18 lines
500 B
LLVM
; Test that CodeGenPrepare respect the volatile flag when splitting a store.
|
|
;
|
|
; RUN: opt -S -mtriple=powerpc64le -codegenprepare -force-split-store < %s | FileCheck %s
|
|
|
|
define void @fun(i16* %Src, i16* %Dst) {
|
|
; CHECK: store volatile i16 %8, i16* %Dst
|
|
%1 = load i16, i16* %Src
|
|
%2 = trunc i16 %1 to i8
|
|
%3 = lshr i16 %1, 8
|
|
%4 = trunc i16 %3 to i8
|
|
%5 = zext i8 %2 to i16
|
|
%6 = zext i8 %4 to i16
|
|
%7 = shl nuw i16 %6, 8
|
|
%8 = or i16 %7, %5
|
|
store volatile i16 %8, i16* %Dst
|
|
ret void
|
|
}
|