brintos

brintos / llvm-project-archived public Read only

0
0
Text · 844 B · a342fa7 Raw
43 lines · plain
1; Test integer negation.2;3; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s4 5; Test i32->i32 negation.6define i32 @f1(i32 %val) {7; CHECK-LABEL: f1:8; CHECK: lcr %r2, %r29; CHECK: br %r1410  %neg = sub i32 0, %val11  ret i32 %neg12}13 14; Test i32->i64 negation.15define i64 @f2(i32 %val) {16; CHECK-LABEL: f2:17; CHECK: lcgfr %r2, %r218; CHECK: br %r1419  %ext = sext i32 %val to i6420  %neg = sub i64 0, %ext21  ret i64 %neg22}23 24; Test i32->i64 negation that uses an "in-register" form of sign extension.25define i64 @f3(i64 %val) {26; CHECK-LABEL: f3:27; CHECK: lcgfr %r2, %r228; CHECK: br %r1429  %trunc = trunc i64 %val to i3230  %ext = sext i32 %trunc to i6431  %neg = sub i64 0, %ext32  ret i64 %neg33}34 35; Test i64 negation.36define i64 @f4(i64 %val) {37; CHECK-LABEL: f4:38; CHECK: lcgr %r2, %r239; CHECK: br %r1440  %neg = sub i64 0, %val41  ret i64 %neg42}43