[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / omod-nsz-flag.mir
blobc2bf002a92de72a960a40211a79ed55a489d4988
1 # RUN: llc -march=amdgcn -verify-machineinstrs -run-pass si-fold-operands  %s -o - | FileCheck -check-prefix=GCN %s
3 ---
5 # FIXME: Is it OK to fold omod for this?
6 # GCN-LABEL: name: omod_inst_flag_nsz_src
7 # GCN: %0:vgpr_32 = nsz V_ADD_F32_e64 0, $vgpr0, 0, $vgpr1, 0, 0, implicit $exec
8 # GCN-NEXT: %1:vgpr_32 = V_MUL_F32_e64 0, %0, 0, 1073741824, 0, 0, implicit $exec
9 # GCN-NEXT: S_ENDPGM 0, implicit %1
10 name: omod_inst_flag_nsz_src
11 tracksRegLiveness: true
12 machineFunctionInfo:
13   mode:
14     ieee: false
16 body:             |
17   bb.0:
18     liveins: $vgpr0, $vgpr1
20   %0:vgpr_32 = nsz V_ADD_F32_e64 0, $vgpr0, 0, $vgpr1, 0, 0, implicit $exec
21   %1:vgpr_32 = V_MUL_F32_e64 0, %0, 0, 1073741824, 0, 0, implicit $exec
22   S_ENDPGM 0, implicit %1
24 ...
25 ---
27 # GCN-LABEL: name: omod_inst_flag_nsz_result
28 # GCN: %0:vgpr_32 = V_ADD_F32_e64 0, $vgpr0, 0, $vgpr1, 0, 1, implicit $exec
29 # GCN-NEXT: S_ENDPGM 0, implicit %0
31 name: omod_inst_flag_nsz_result
32 tracksRegLiveness: true
33 machineFunctionInfo:
34   mode:
35     ieee: false
37 body:             |
38   bb.0:
39     liveins: $vgpr0, $vgpr1
41   %0:vgpr_32 = V_ADD_F32_e64 0, $vgpr0, 0, $vgpr1, 0, 0, implicit $exec
42   %1:vgpr_32 = nsz V_MUL_F32_e64 0, %0, 0, 1073741824, 0, 0, implicit $exec
43   S_ENDPGM 0, implicit %1
44 ...
46 ---
48 # GCN-LABEL: name: omod_inst_flag_nsz_both
49 # GCN: %0:vgpr_32 = nsz V_ADD_F32_e64 0, $vgpr0, 0, $vgpr1, 0, 1, implicit $exec
50 # GCN-NEXT: S_ENDPGM 0, implicit %0
52 name: omod_inst_flag_nsz_both
53 tracksRegLiveness: true
54 machineFunctionInfo:
55   mode:
56     ieee: false
58 body:             |
59   bb.0:
60     liveins: $vgpr0, $vgpr1
62   %0:vgpr_32 = nsz V_ADD_F32_e64 0, $vgpr0, 0, $vgpr1, 0, 0, implicit $exec
63   %1:vgpr_32 = nsz V_MUL_F32_e64 0, %0, 0, 1073741824, 0, 0, implicit $exec
64   S_ENDPGM 0, implicit %1
65 ...