| 1792 | } |
| 1793 | |
| 1794 | bool InstructionHasNoSideEffects(const opt::Instruction& instruction) { |
| 1795 | switch (instruction.opcode()) { |
| 1796 | case spv::Op::OpUndef: |
| 1797 | case spv::Op::OpAccessChain: |
| 1798 | case spv::Op::OpInBoundsAccessChain: |
| 1799 | case spv::Op::OpArrayLength: |
| 1800 | case spv::Op::OpVectorExtractDynamic: |
| 1801 | case spv::Op::OpVectorInsertDynamic: |
| 1802 | case spv::Op::OpVectorShuffle: |
| 1803 | case spv::Op::OpCompositeConstruct: |
| 1804 | case spv::Op::OpCompositeExtract: |
| 1805 | case spv::Op::OpCompositeInsert: |
| 1806 | case spv::Op::OpCopyObject: |
| 1807 | case spv::Op::OpTranspose: |
| 1808 | case spv::Op::OpConvertFToU: |
| 1809 | case spv::Op::OpConvertFToS: |
| 1810 | case spv::Op::OpConvertSToF: |
| 1811 | case spv::Op::OpConvertUToF: |
| 1812 | case spv::Op::OpUConvert: |
| 1813 | case spv::Op::OpSConvert: |
| 1814 | case spv::Op::OpFConvert: |
| 1815 | case spv::Op::OpQuantizeToF16: |
| 1816 | case spv::Op::OpSatConvertSToU: |
| 1817 | case spv::Op::OpSatConvertUToS: |
| 1818 | case spv::Op::OpBitcast: |
| 1819 | case spv::Op::OpSNegate: |
| 1820 | case spv::Op::OpFNegate: |
| 1821 | case spv::Op::OpIAdd: |
| 1822 | case spv::Op::OpFAdd: |
| 1823 | case spv::Op::OpISub: |
| 1824 | case spv::Op::OpFSub: |
| 1825 | case spv::Op::OpIMul: |
| 1826 | case spv::Op::OpFMul: |
| 1827 | case spv::Op::OpUDiv: |
| 1828 | case spv::Op::OpSDiv: |
| 1829 | case spv::Op::OpFDiv: |
| 1830 | case spv::Op::OpUMod: |
| 1831 | case spv::Op::OpSRem: |
| 1832 | case spv::Op::OpSMod: |
| 1833 | case spv::Op::OpFRem: |
| 1834 | case spv::Op::OpFMod: |
| 1835 | case spv::Op::OpVectorTimesScalar: |
| 1836 | case spv::Op::OpMatrixTimesScalar: |
| 1837 | case spv::Op::OpVectorTimesMatrix: |
| 1838 | case spv::Op::OpMatrixTimesVector: |
| 1839 | case spv::Op::OpMatrixTimesMatrix: |
| 1840 | case spv::Op::OpOuterProduct: |
| 1841 | case spv::Op::OpDot: |
| 1842 | case spv::Op::OpIAddCarry: |
| 1843 | case spv::Op::OpISubBorrow: |
| 1844 | case spv::Op::OpUMulExtended: |
| 1845 | case spv::Op::OpSMulExtended: |
| 1846 | case spv::Op::OpAny: |
| 1847 | case spv::Op::OpAll: |
| 1848 | case spv::Op::OpIsNan: |
| 1849 | case spv::Op::OpIsInf: |
| 1850 | case spv::Op::OpIsFinite: |
| 1851 | case spv::Op::OpIsNormal: |
no test coverage detected