================
@@ -77,4 +77,196 @@ return:             ; preds = %entry
        ret i32 %retval3
 }
 
-declare i32 @llvm.get.rounding() nounwind
+define void @setrnd_tozero() {
+; PPC32-LABEL: setrnd_tozero:
+; PPC32:       # %bb.0: # %entry
+; PPC32-NEXT:    mtfsb0 30
+; PPC32-NEXT:    mtfsb1 31
+; PPC32-NEXT:    blr
+;
+; PPC64-LABEL: setrnd_tozero:
+; PPC64:       # %bb.0: # %entry
+; PPC64-NEXT:    mtfsb0 30
+; PPC64-NEXT:    mtfsb1 31
+; PPC64-NEXT:    blr
+;
+; PPC64LE-LABEL: setrnd_tozero:
+; PPC64LE:       # %bb.0: # %entry
+; PPC64LE-NEXT:    mtfsb0 30
+; PPC64LE-NEXT:    mtfsb1 31
+; PPC64LE-NEXT:    blr
+;
+; DM-LABEL: setrnd_tozero:
+; DM:       # %bb.0: # %entry
+; DM-NEXT:    mtfsb0 30
+; DM-NEXT:    mtfsb1 31
+; DM-NEXT:    blr
+entry:
+  call void @llvm.set.rounding(i32 0)
+  ret void
+}
+
+define void @setrnd_tonearest_tieeven() {
+; PPC32-LABEL: setrnd_tonearest_tieeven:
+; PPC32:       # %bb.0: # %entry
+; PPC32-NEXT:    mtfsb0 30
+; PPC32-NEXT:    mtfsb0 31
+; PPC32-NEXT:    blr
+;
+; PPC64-LABEL: setrnd_tonearest_tieeven:
+; PPC64:       # %bb.0: # %entry
+; PPC64-NEXT:    mtfsb0 30
+; PPC64-NEXT:    mtfsb0 31
+; PPC64-NEXT:    blr
+;
+; PPC64LE-LABEL: setrnd_tonearest_tieeven:
+; PPC64LE:       # %bb.0: # %entry
+; PPC64LE-NEXT:    mtfsb0 30
+; PPC64LE-NEXT:    mtfsb0 31
+; PPC64LE-NEXT:    blr
+;
+; DM-LABEL: setrnd_tonearest_tieeven:
+; DM:       # %bb.0: # %entry
+; DM-NEXT:    mtfsb0 30
+; DM-NEXT:    mtfsb0 31
+; DM-NEXT:    blr
+entry:
+  call void @llvm.set.rounding(i32 1)
+  ret void
+}
+
+define void @setrnd_toposinf() {
+; PPC32-LABEL: setrnd_toposinf:
+; PPC32:       # %bb.0: # %entry
+; PPC32-NEXT:    mtfsb1 30
+; PPC32-NEXT:    mtfsb0 31
+; PPC32-NEXT:    blr
+;
+; PPC64-LABEL: setrnd_toposinf:
+; PPC64:       # %bb.0: # %entry
+; PPC64-NEXT:    mtfsb1 30
+; PPC64-NEXT:    mtfsb0 31
+; PPC64-NEXT:    blr
+;
+; PPC64LE-LABEL: setrnd_toposinf:
+; PPC64LE:       # %bb.0: # %entry
+; PPC64LE-NEXT:    mtfsb1 30
+; PPC64LE-NEXT:    mtfsb0 31
+; PPC64LE-NEXT:    blr
+;
+; DM-LABEL: setrnd_toposinf:
+; DM:       # %bb.0: # %entry
+; DM-NEXT:    mtfsb1 30
+; DM-NEXT:    mtfsb0 31
+; DM-NEXT:    blr
+entry:
+  call void @llvm.set.rounding(i32 2)
+  ret void
+}
+
+define void @setrnd_toneginf() {
+; PPC32-LABEL: setrnd_toneginf:
+; PPC32:       # %bb.0: # %entry
+; PPC32-NEXT:    mtfsb1 30
+; PPC32-NEXT:    mtfsb1 31
+; PPC32-NEXT:    blr
+;
+; PPC64-LABEL: setrnd_toneginf:
+; PPC64:       # %bb.0: # %entry
+; PPC64-NEXT:    mtfsb1 30
+; PPC64-NEXT:    mtfsb1 31
+; PPC64-NEXT:    blr
+;
+; PPC64LE-LABEL: setrnd_toneginf:
+; PPC64LE:       # %bb.0: # %entry
+; PPC64LE-NEXT:    mtfsb1 30
+; PPC64LE-NEXT:    mtfsb1 31
+; PPC64LE-NEXT:    blr
+;
+; DM-LABEL: setrnd_toneginf:
+; DM:       # %bb.0: # %entry
+; DM-NEXT:    mtfsb1 30
+; DM-NEXT:    mtfsb1 31
+; DM-NEXT:    blr
+entry:
+  call void @llvm.set.rounding(i32 3)
+  ret void
+}
+
+define void @setrnd_var(i32 %x) {
+; PPC32-LABEL: setrnd_var:
+; PPC32:       # %bb.0: # %entry
+; PPC32-NEXT:    stwu 1, -16(1)
+; PPC32-NEXT:    .cfi_def_cfa_offset 16
----------------
chenzheng1030 wrote:

nit: no need for the cfi pseudos.

https://github.com/llvm/llvm-project/pull/67302
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to