1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/CodeGen/PowerPC/splitstore-check-volatile.ll
Fangrui Song 1e7c397a16 [CodeGenPrepare] Make TargetPassConfig required
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
2020-02-02 09:28:45 -08:00

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
}